pipenv:如何强制virtualenv目录?

时间:2018-05-30 06:59:39

标签: python pip pipenv

实际上,pipenv将使用如下路径安装virtualenv:

$WORKON_HOME/<base_dir>-<hash>

例如,是否有可能具有我想要的路径,没有base_dirhash,例如:

/home/user/myapp_venv

5 个答案:

答案 0 :(得分:5)

有一个undocumented feature的pipenv,它可以从VIRTUAL_ENV环境变量中找到virtualenv路径,但你需要手动创建virtualenv:

virtualenv /home/user/myapp_venv
VIRTUAL_ENV=/home/user/myapp_venv pipenv install

答案 1 :(得分:2)

除了使用自定义位置之外,您还可以在项目目录中安装virtualenv。只需在.bashrc / .zshrc文件中添加以下行:

export PIPENV_VENV_IN_PROJECT=1

只是想让其他人知道还有另一种方法可用。

毕竟应该将virtualenv保留在项目目录的内部还是外部吗?

答案 2 :(得分:0)

pipenv中有一个未记录的功能:如果您create a file named .venv in the project root with a path in itpipenv将使用该功能而不是自动生成的路径。

但这是is more fit for cases when you already have an established set of environments that you wish to reuse。否则,将环境放置在任意位置最终会造成混乱。 pipenv可以使您轻松地完成所有任务,将它们都放在一个可预测的位置,并消除人为错误造成的意外碰撞。

答案 3 :(得分:0)

在Windows中,Pycharm用户使用

  1. 使.venv在项目中折叠

  2. 设置->项目->项目解释器-> pipenv环境

对我有用

答案 4 :(得分:0)

在项目中创建一个目录 .venv 然后尝试使用 pipenv install <some package> 启动在我的 Mac 中对我不起作用,它总是在其他地方创建虚拟环境。虽然后来我弄清楚了原因。黑客是,首先 cd 到项目文件夹 cd /Home/.../MyProject 然后创建一个空的 Pipfile touch Pipfile 创建一个目录 mkdir .venv 应该可以工作。现在您可以运行 pipenv install 并使用 .venv 文件夹。

现在详细说明来自源code。当 pipenv 尝试创建一个虚拟环境时,它会查看目录 dot_venv = os.path.join(self.project_directory, ".venv")(取自源代码),这就是 self.project_directory 的样子:

@property
    def project_directory(self):
        # type: () -> str
        return os.path.abspath(os.path.join(self.pipfile_location, os.pardir))

因此该函数查找 pipfile 位置以创建它将创建虚拟环境的路径。因此,如果您事先创建空的 Pipfile,则确认它会找到该文件,然后找到 .venv 目录并一起创建路径。