vog*_*vog 12 python directory project virtualenv pipenv
我希望 pipenv$PROJECTDIR/.venv为每个签出项目的人自动创建它的 virtualenv 。
到目前为止,我只看到以下选项有效,但都不令人满意:
PIPENV_VENV_IN_PROJECT=1 pipenv在我的项目中始终通过“ ”调用 pipenv ,如果他们运行pipenv命令而忘记设置PIPENV_VENV_IN_PROJECT.direnv并提供.envrc文件,添加另一个不明显的构建依赖项。我尝试了以下方法:
PIPENV_VENV_IN_PROJECT=1”放入$PROJECTDIR/.env,但这仅在 的子外壳内计算pipenv shell/run,并且会被pipenv自身忽略。那么,如何在每个项目的基础上设置 PIPENV_VENV_IN_PROJECT?
vog*_*vog 23
自己来回答这个问题,这确实是可能的!
短篇故事:
只需自己创建一个空的 .venv 目录。Pipenv 会自动选择它。
很长的故事:
请注意,pipenv 问题跟踪器中有许多问题给人一种错误的印象,即 pipenv 开发人员不想提供此功能。然而,这些问题只是描述了实现这一目标的其他方式,而那些额外的方式被拒绝了。
但在那一团混乱中,有一条评论实际上很有帮助:
techalchemy 于 2018 年 12 月 12 日发表评论
你可以做的事情:
- 只需自己创建 .venv。Pipenv 将使用它。
- 使用 direnv 之类的工具为每个目录激活此设置
- 全局设置 envvar
- 在项目根目录中创建一个名为 .venv 的文件,其内容只是一个 virtualenv 的根目录的路径
对于第 1 点和第 4 点, pipenv 将自动拾取
注意:如果您想使用pipenv当前 Debian/Stable (Buster) 附带的,第 4 点将不起作用,因为此功能是在更高pipenv版本中引入的。但是,第 1 点非常有效。对于 Python 3,这意味着:
python3 -m virtualenv -p python3 .venv
pipenv install ... # resp. pipenv sync
Run Code Online (Sandbox Code Playgroud)