fbe*_*nce 6 python virtualenv pyenv pipenv
我开始看,pipenv
好像还不错。我唯一担心的是,我的大多数项目都涉及numpy
,scipy
以及其他一些不那么小的库。
目前的方式来管理我的项目:
我有pyenv
和pyenv-virtualenv
安装。我有几个(目前4)具体的virtualenvs
每一个迎合型项目。项目本身已经.pyenv-version
设置,我pyenv
启用了自动加载 virtualenv 功能。如果我需要共享一个项目,我产生一个requirements.txt
与pip freeze -l
从virtualenv
。
所以在我的当前设置,我X
的项目数和Y, Y << X
数量virtualenvs
,所有金额为几GB的硬盘空间。请注意,由于像numpy
每个库这样的大型库virtualenvs
都非常大,大约 700-900 MB。
我的问题:
据我了解,pipenv
默认情况下会为我virtualenv
的所有项目创建一个,因此我占用的硬盘空间virtualenvs
会大大增加。我感兴趣的是:
pipenv
跨多个使用完全相同依赖项的项目共享环境?即pipenv
加载相同的多个配置virtualenv
?pipenv
从virtualenv
我设置的配置文件中生成配置文件pyenv
?即我不会pipenv
用来实际运行我的项目,我不会创建任何virtualenvs
with pipenv
,但我会创建pipenv
用于共享项目的配置文件(在这种情况下,可能也与 a 一起requirements.txt
)。编辑:我重写了大部分问题以使其更清楚。
pipenv
似乎不太适合您的特定工作流程,因为它以项目为中心而不是以环境为中心。 pipenv
将虚拟环境视为不稳定的环境,并保留在情况需要时自由更改其的权利。您可以使用它,但在环境发生变化的情况下,由于pipenv
更严格的审查,保持所有项目同步将是一件痛苦的事情。
您可以通过在项目根目录中创建一个文件及其路径来pipenv
显式指定用于项目的虚拟环境(通常,virtualenvs 是在特定位置创建的,其自动生成的名称包含项目路径的哈希值) 。这似乎没有记录。.venv
然而,pipenv
与 不同的是virtualenv
,它会检查并强制虚拟环境具有满足条件的确切模块集Pipfile
以及生成的 中指定的确切“最后测试的配置” Pipfile.lock
。
Pipfile
从生成requirements.txt
,它将指定确切的包版本并包含所有依赖项——而根据设计,它应该包含更多智能信息。因此,如果您更改环境中的任何软件包版本,您将需要:
Pipfile.lock
受影响项目中的所有项目(例如复制更改的项目)。使用生成的Pipfile
,您可能会删除它们。Pipfile
如果有更改,则将受影响项目中的所有 s 更新为新的包版本(例如复制更改的版本) 归档时间: |
|
查看次数: |
1059 次 |
最近记录: |