让 Pipenv 在同一文件夹中创建 virtualenv

Make Pipenv create the virtualenv in the same folder

我希望 Pipenv 在与我的项目 (Django) 相同的文件夹中创建虚拟环境。

我搜索并找到了 PIPENV_VENV_IN_PROJECT 选项,但我不知道在哪里以及如何使用它。

PIPENV_VENV_IN_PROJECT是环境变量,设置即可(值无所谓,但一定不能为空)。确保导出它以便 shell 的子进程可以看到它:

export PIPENV_VENV_IN_PROJECT="enabled"

这会导致在 Pipfile 文件旁边的 .venv 目录中创建 virtualenv。使用 unset PIPENV_VENV_IN_PROJECT 再次删除该选项。

您可能想看看 direnv project 在这里是否有用。当您进入项目目录时,它会自动为您设置环境变量,前提是您在项目目录中创建了一个 .envrc 文件并使用 direnv 启用了该目录。然后,您可以将任何此类 export 命令添加到该文件。

对于鱼shell,使用:

set -Ux PIPENV_VENV_IN_PROJECT 1

尝试

PIPENV_VENV_IN_PROJECT=1 pipenv sync -d

这可能对其他人有帮助。我找到了另一种简单的方法来解决这个问题!

只需在项目中创建一个空文件夹并将其命名为 .venv

pipenv 将使用此文件夹。

为了后代,如果您发现 pipenv 没有在正确的位置创建虚拟环境,您可能在某处有一个错误的 Pipfile,混淆了 pipenv shell 调用 - 在这种情况下,我会从路径中删除它未明确链接到存储库的位置。