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


当前回答

您应该安装Python版本。如果你有,那么基本上,

利用virtualenv,

virtualenv --python=python3.8 env/place/you/want/to/save/to

与venv

python3.8 -m venv env/place/you/want/to/save/to

以上示例适用于python3.8,您可以将其更改为具有不同版本的虚拟环境,前提是这些虚拟环境已安装在您的计算机中。

其他回答

当您在共享托管环境中,需要从源代码安装和编译Python,然后从Python版本创建venv时,可以遵循以下步骤。对于Python 2.7.9。你会按照以下思路做一些事情:

mkdir ~/src
wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
mkdir ~/.localpython
./configure --prefix=$HOME/.localpython
make
make install

虚拟环境

cd ~/src
wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63
tar -zxvf virtualenv-15.0.2.tar.gz
cd virtualenv-15.0.2/
~/.localpython/bin/python setup.py install
virtualenv ve -p $HOME/.localpython/bin/python2.7
source ve/bin/activate   

当然,这可以适用于任何您想要复制您工作和部署的环境的情况。

这些对于Windows来说似乎有点过于复杂。如果您在运行python 3.3或更高版本的Windows上,可以使用python启动器py更轻松地执行此操作。只需安装不同的python版本,然后运行:

py -[my version] -m venv env

这将使用python[我的版本]在当前目录中创建一个名为env的虚拟环境。例如:

py -3.7 -m venv env
./env/Scripts/activate

这将使用python3.7创建一个名为env的虚拟环境并激活它。不需要路径或其他复杂的东西。

从Python 3开始,文档建议使用以下方法创建虚拟环境:

python3 -m venv "my_env_name"

请注意,venv不允许使用其他版本的Python创建虚拟环境。为此,请安装并使用virtualenv包。


过时的信息

pyvenv脚本可用于创建虚拟环境:

pyvenv "/path/to/new/virtual/environment"

自Python 3.6以来已弃用。

您可以使用所需的python版本调用virtualenv。例如:

python3 -m virtualenv venv

或者直接指向虚拟路径。例如,对于窗口:

c:\Python34\Scripts\virtualenv.exe venv

通过运行:

venv/bin/python

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

您可以看到安装在虚拟环境中的python版本

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

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

export VIRTUALENV_PYTHON=/path/to/desired/version

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