用virtualenv使用不同的Python版本

我有一个Debian系统,目前使用python 2.5.4运行。 我安装了virtualenv,一切正常。 是否有可能使用不同版本的Python使用virtualenv?

我编译了Python 2.6.2,并希望将它用于一些virtualenv。 覆盖二进制文件就足够了吗? 或者我必须改变与图书馆有关的事情?


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

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

NB对于Python 3.3或更高版本,请参阅下面的Aelfinn的答案。 [编者注:我知道这通常应该是一个评论,而不是编辑,但是一个新的评论将被隐藏起来,我只花了45分钟解开错误,因为这个重要的答案被埋在三个或四个鹦鹉答案中。 我只是想在这里节省每个人的时间。]


这些步骤是在共享主机环境中进行的,需要从源代码安装&complie 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   

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


更新:对于Python3.6,下面的pyvenv脚本已弃用。 相反,Python文档建议使用以下命令创建虚拟环境:

python3 -m venv <myenvname>

对于python3(3.3+),请使用上述方法或脚本pyvenv命令。

pyvenv /path/to/new/virtual/environment

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

链接地址: http://www.djcxy.com/p/20007.html

上一篇: Use different Python version with virtualenv

下一篇: How to get file creation & modification date/times in Python?