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

问题描述 投票:0回答:8

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

我搜索并找到了

PIPENV_VENV_IN_PROJECT
选项,但我不知道在哪里以及如何使用它。

python pipenv
8个回答
111
投票

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

export PIPENV_VENV_IN_PROJECT=1

这会导致在

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

您可能想看看

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


94
投票

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

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

.venv
,pipenv 将使用该文件夹。


6
投票

尝试

PIPENV_VENV_IN_PROJECT=1 pipenv sync -d

6
投票

只需三个简单步骤:

  1. 将变量导出为

    export PIPENV_VENV_IN_PROJECT=1

  2. 创建一个空文件夹和文件Pipfile

    mkdir .venv

    touch Pipfile

  3. 然后执行

    pipenv shell


3
投票

对于鱼壳,使用:

set -Ux PIPENV_VENV_IN_PROJECT 1

3
投票

为了后代的缘故,如果您发现 pipelinev 没有在正确的位置创建虚拟环境,您可能在某个地方有一个错误的 Pipfile,混淆了

pipenv shell
调用 - 在这种情况下,我会从未显式链接的路径位置删除它到存储库。


3
投票

这个技巧对我有用:

  • 创建一个名为 .venv 的空文件夹
  • 创建一个名为 Pipfile 的空文件
  • 在那里运行 pipelinev shell。

0
投票

您还可以在项目根文件夹中创建一个名为

.env
的文件并包含以下行:

PIPENV_VENV_IN_PROJECT=1

Pipenv 将识别此文件,并在继续之前自动加载其中定义为环境变量的所有键值对,如此处所述。这与预先手动定义环境变量具有相同的效果,只不过您只需执行一次并且它适用于任何平台。

在这样的“dotenv”文件中定义环境变量是一个相当广泛认可的约定,并受到许多工具的支持。请参阅本文了解更多说明。

© www.soinside.com 2019 - 2024. All rights reserved.