![](/img/trans.png)
[英]ASCII codec error when setting up an virtualenv with pyenv-virtualenv
[英]Keeping the same, shared virtualenvs when switching from pyenv-virtualenv to pipenv
我開始看pipenv
,它似乎很不錯。 我唯一擔心的是,我的大部分項目都涉及numpy
、 scipy
和其他一些不太小的庫。
當前管理我的項目的方式:我安裝了pyenv
和pyenv-virtualenv
。 我有幾個(目前4)具體virtualenvs
每個迎合類型的項目。 項目本身設置了.pyenv-version
,我啟用了pyenv
的自動加載 virtualenv 功能。 如果我需要共享一個項目,我會使用pip freeze -l
從virtualenv
生成一個requirements.txt
。
因此,在我當前的設置中,我有X
個項目和Y, Y << X
個virtualenvs
,總共有幾 GB 的硬盤空間。 請注意,由於像numpy
這樣的大型庫,每個virtualenvs
都非常大,大約 700-900 MB。
我的問題:
據我了解, pipenv
默認情況下會為我的所有項目創建一個virtualenv
,因此我的virtualenvs
占用的硬盤空間會大大增加。 我感興趣的是:
pipenv
環境? 即加載相同virtualenv
多個pipenv
配置?pyenv
設置的virtualenv
生成pipenv
配置文件? 即我不會用pipenv
實際運行我的項目,我不會創建任何virtualenvs
與pipenv
,但我會創造pipenv
配置文件共享項目(在這種情況下,可能沿着側requirements.txt
為好)。編輯:我重寫了大部分問題以使其更清楚。
pipenv
似乎不太適合您的特定工作流程,因為它以項目為中心而不是以環境為中心。 pipenv
將虛擬環境視為易變的,並保留在情況需要時自由更改它的權利。 您可以使用它,但在更改環境的情況下,由於pipenv
更嚴格的審查,保持所有項目同步將是一件痛苦的事情。
您可以通過在項目根目錄中創建一個帶有路徑的.venv
文件來明確指定pipenv
用於項目的虛擬環境(通常,virtualenvs 是在特定位置創建的,其自動生成的名稱包含路徑的哈希值)該項目)。 這似乎是無證的。
但是, pipenv
與virtualenv
不同,它檢查並強制虛擬環境具有滿足Pipfile
條件的確切模塊集以及生成的Pipfile.lock
指定的確切“上次測試配置”。
requirements.txt
生成Pipfile
,它將指定確切的包版本並包含所有依賴項—— 而根據設計,它應該包含更智能的信息。因此,如果您更改環境中的任何軟件包版本,則需要:
Pipfile.lock
(例如復制更改的項目)。 使用生成的Pipfile
,您Pipfile
刪除它們。Pipfile
更新為新的包版本(例如復制更改的版本)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.