【发布时间】:2020-01-15 01:31:09
【问题描述】:
我希望 pipenv 在$PROJECTDIR/.venv 中为签出项目的每个人自动创建它的 virtualenv。
到目前为止,我只看到以下选项有效,但没有一个是令人满意的:
- 要求用户在全局范围内设置 PIPENV_VENV_IN_PROJECT=1,将我的项目首选项强制应用于他们的每个其他项目。
- 要求用户在我的项目中始终通过“
PIPENV_VENV_IN_PROJECT=1 pipenv”调用 pipenv,如果他们运行pipenv命令并忘记设置PIPENV_VENV_IN_PROJECT,这会带来麻烦。 - 要求用户安装第三方工具
direnv并提供.envrc文件,添加另一个不明显的构建依赖项。
我尝试了以下方法:
- 向 Pipfile 添加类似 PIPENV_VENV_IN_PROJECT 的选项,但我找不到任何此类 Pipfile 选项。
- 将“
PIPENV_VENV_IN_PROJECT=1”放入$PROJECTDIR/.env,但这仅在pipenv shell/run的子shell 内进行评估,并被pipenv本身忽略。
那么,如何在每个项目的基础上设置 PIPENV_VENV_IN_PROJECT?
【问题讨论】:
-
出于好奇,从项目的角度定义虚拟环境的位置何时很重要?
-
@np8 目标受众是想要尝试构建该工具,但不太了解 Python 构建环境的复杂性的人。一个重要的期望是,在尝试了一些东西之后,删除项目目录应该足以删除该工具,而系统的其余部分没有任何剩余物,尤其是没有像虚拟环境这样消耗大量磁盘空间的剩余物。这只有在虚拟环境位于项目目录中时才有可能。
标签: python directory virtualenv project pipenv