如何为指定版本的Python创建虚拟环境?


当前回答

有一种更简单的方法,

virtualenv venv --python=python2.7

感谢您的评论,只有在系统级安装了python2.7(例如/usr/bin/python2.7)时,这才有效。

否则,如果你正在使用自制程序,你可以使用路径来给你想要的。

virtualenv venv --python=/usr/local/bin/python

您可以找到安装python(Linux)或py-0p(Windows)的路径

这也适用于python 3。

which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3

最终冷凝至:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`

其他回答

对于Mac(High Sierra),在python3上安装virtualenv并为python2创建virtualenv:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14

-p方法运行良好,但您必须记住每次都使用它。如果您的目标是切换到较新版本的Python,这是一个痛苦,也可能导致错误。

您的另一个选项是设置一个环境变量,该变量的作用与-p相同。通过~/.bashrc文件或管理登录会话的环境变量的任何位置设置:

export VIRTUALENV_PYTHON=/path/to/desired/version

然后,每当您不在命令行上指定-p时,virtualenv就会使用它。

简单:

Linux系统

virtualenv venv --python=/usr/bin/python3.9

窗户

virtualenv venv --python=C:\Users\username\AppData\Local\Programs\Python\Python\python.exe

注意:对于Python 3.3+,请参阅下面Aelfin的答案。


在创建virtualenv实例时,使用--python(或short-p)选项指定要使用的python可执行文件,例如:

virtualenv --python="/usr/bin/python2.6" "/path/to/new/virtualenv/"

更简单的是,使用命令替换为您查找python2:

virtualenv-p$(哪个python2)<path/to/new/virtalenv/>

或者使用virtualvwrapper时:

mkvirtualenv-p$(哪个python2)<env_name>