Python 如何在每个项目的基础上在项目中设置PIPENV_VENV_
我希望pipenv在Python 如何在每个项目的基础上在项目中设置PIPENV_VENV_,python,directory,virtualenv,project,pipenv,Python,Directory,Virtualenv,Project,Pipenv,我希望pipenv在$PROJECTDIR/.venv中为每个签出项目的人自动创建其virtualenv 到目前为止,我只看到以下选项有效,但没有一个是令人满意的: 要求用户全局设置PIPENV_VENV_IN_PROJECT=1,在他们的每个其他项目上强制设置我的项目首选项 在我的项目中,要求用户始终通过“pipenv\u-IN_-PROJECT=1 pipenv”调用pipenv,如果他们运行pipenv命令而忘记在_-PROJECT中设置pipenv\u,就会产生麻烦 要求用户安装第三方
$PROJECTDIR/.venv
中为每个签出项目的人自动创建其virtualenv
到目前为止,我只看到以下选项有效,但没有一个是令人满意的:
- 要求用户全局设置PIPENV_VENV_IN_PROJECT=1,在他们的每个其他项目上强制设置我的项目首选项
- 在我的项目中,要求用户始终通过“
”调用pipenv,如果他们运行pipenv\u-IN_-PROJECT=1 pipenv
命令而忘记在_-PROJECT中设置pipenv
pipenv\u,就会产生麻烦
- 要求用户安装第三方工具
,并提供direnv
文件,添加另一个不明显的构建依赖项.envrc
- 向Pipfile添加一个类似PIPENV_VENV_IN_项目的选项,但我找不到任何这样的Pipfile选项
- 将“
”放入PIPENV\u VENV\u IN_PROJECT=1
中,但这只在$PROJECTDIR/.env
的子shell中进行评估,并且被PIPENV shell/run
本身忽略PIPENV
那么,我如何在每个项目的基础上设置项目中的PIPENV\u VENV\u?我自己回答这个问题,这确实是可能的 短篇小说: 只需自己创建一个空的.venv目录。Pipenv会自动接收这个 说来话长: 请注意,pipenv问题跟踪程序中存在许多问题,给人一种错误的印象,即pipenv开发人员不想提供此功能。然而,这些问题只是描述了实现这一目标的其他途径,而这些额外途径被拒绝了 但在这场混乱中,有一条评论实际上很有帮助:
pipenv
,第4点将不起作用,因为此功能是在以后的pipenv
版本中引入的。然而,第1点非常有效。对于Python 3,这意味着:
python3 -m virtualenv -p python3 .venv
pipenv install ... # resp. pipenv sync
出于好奇,什么时候从项目的角度定义虚拟环境的位置才是重要的?@np8目标受众是那些想要尝试并构建该工具的人,但并不太喜欢Python构建环境的内部。一个重要的期望是,在尝试stuff之后,删除项目目录应该足以删除该工具,而不会在其系统的其余部分中留下任何剩余内容,特别是不会有像VirtualEnvs这样消耗大量磁盘空间的剩余内容。只有当虚拟环境位于项目目录中时,这才是可能的。只要有一个空的
.venv
文件夹也可以!伟大的解决方案!