簡體   English   中英

在新的 Python 虛擬環境中持續安裝模塊

[英]Persisting module installation across new python virtual environments

對於背景,我主要在終端工作並使用 vim 編輯代碼。 對於長期的 Python 項目,我使用詩歌管理 venvs 並在源代碼控制中鎖定文件。

我喜歡在我工作的幾乎每個 venv 中安裝一些模塊,例如 ipython/ptpython、(pytest-)icdiff 和其他“生活質量”擴展,我不需要強加給不使用的項目合作者我的工作流程。 我可以使用發行版的包管理器(或 pipx)在全局范圍內安裝 ptpython,但是當我運行它時,它不會在本地 venv 內運行,並且本地依賴項無法訪問。 這變得令人討厭,因為我會在鎖定文件更改時定期重新創建 venv。 現在我有一個 shell 腳本來安裝這些東西,但這感覺就像一個黑客。

一個理想的解決方案可能是創建類似 venv 模板的方法,類似於 git templatedir 選項。 Python 有這樣的東西嗎?

virtualenv 模塊可以選擇在 venv 中包含系統站點包:

python3 -m venv --system-site-packages .venv

有一個功能要求將此選項添加到詩歌中。

這個線程中有一個很好的站點包概述。

這並沒有直接回答也許,但我認為 anaconda 環境是要走的路。 您可以創建不同的“基礎”環境,然后克隆它們。 然后,您可以根據需要在新的克隆環境中使用 pip 添加更多包,從而不更改基礎,而是在新環境中具有可定制性。

試試這個答案: https : //stackoverflow.com/a/40702703/7654532

解決方案

這個問題不是 Python venv 特有的,它也存在於 rvm 和 nvm 中。 只需將包安裝在全局 Python 命名空間下並將其添加到您的PYTHONPATH這樣如果該包未安裝在本地存儲庫中,Python 就會回退到您的全局 Python 命名空間,而無需修改存儲庫鎖定文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM