实际上,pipenv将使用如下路径安装virtualenv:
$WORKON_HOME/<base_dir>-<hash>
例如,是否有可能具有我想要的路径,没有base_dir
和hash
,例如:
/home/user/myapp_venv
答案 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 it,pipenv
将使用该功能而不是自动生成的路径。
但这是is more fit for cases when you already have an established set of environments that you wish to reuse。否则,将环境放置在任意位置最终会造成混乱。 pipenv
可以使您轻松地完成所有任务,将它们都放在一个可预测的位置,并消除人为错误造成的意外碰撞。
答案 3 :(得分:0)
在Windows中,Pycharm用户使用
使.venv在项目中折叠
设置->项目->项目解释器-> 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 目录并一起创建路径。