当我运行python -m venv
时,venv
创建的虚拟环境目录包含一个名为python
的二进制文件和另一个名为python3
的二进制文件,它只是python
的链接}。 (在我的安装中,python
是Python 3.6,python2
是Python 2.7。)
我的问题是,有时(我无法理解后续调用之间的区别)它还会创建指向python3.6
的另一个符号链接python
,但有时它不会。我需要这个符号链接(实际上,tox
需要它)。二进制文件pip3.6
和easy_install-3.6
始终安装在virtualenv中。
有什么方法可以确保python -m venv
创建符号链接python3.6
?
(免责声明:我使用pyenv来管理我的Python安装,但我可以使用/usr/bin/python -m venv
重现上述行为)
答案 0 :(得分:2)
在创建venvs(python -m venv
,而不是virtualenv)时,我通过在创建调用中包含版本号来取得成功;
python3.6 -m venv myvenv
答案 1 :(得分:1)
您需要已有二进制文件才能使用venv来使用它,但是,如果有它,则使用python2 -m venv
或python3 -m venv
都没有关系。如果需要3.6,请尝试:
python -m venv python=`which python3.6` ~/envs/py36