在virtualenv中使用不同的Python版本

Posted 1994jinnan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在virtualenv中使用不同的Python版本相关的知识,希望对你有一定的参考价值。

来源:百度SEO公司   我有一个目前使用python 2.5.4运行的Debian系统。 我正确安装了virtualenv,一切正常。 我是否可以将virtualenv与其他版本的Python一起使用?

我编译了Python 2.6.2,并希望将其与一些virtualenv一起使用。 覆盖二进制文件是否足够? 还是我必须更改有关库的某些内容?


#1楼

这些是您在共享主机环境上且需要从源代码安装和编译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   

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


#2楼

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

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

注意:对于Python 3.3或更高版本,请参阅下面的Aelfinn 答案 。


#3楼

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

#4楼

假设您当前在virtualenv中安装了python 2.7。 但是要使用python3.2 ,您必须使用以下python3.2进行更新:

$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv

然后通过以下方式激活您的virtualenv :

$ source activate name_of_your_virtualenv

然后执行以下操作:在shell中使用python --version检查您的版本是否已更新。


#5楼

Mac OSX 10.6.8(Snow Leopard):

1)当您进行pip install virtualenv ,pip命令与您的一个python版本相关联,并且virtualenv被安装到该python版本中。 你可以做

 $ which pip   

看看是什么版本的python。 如果您看到类似以下内容:

 $ which pip
 /usr/local/bin/pip

然后做:

$ ls -al /usr/local/bin/pip
lrwxrwxr-x  1 root  admin  65 Apr 10  2015 /usr/local/bin/pip ->
../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip

您可以在输出中看到python版本。

默认情况下,它将是用于您创建的任何新环境的python版本。 但是,您可以使用-p flag指定计算机上安装的任何版本的python以在新环境中使用:

$ virtualenv -p python3.2 my_env  
Running virtualenv with interpreter /usr/local/bin/python3.2  
New python executable in my_env/bin/python  
Installing setuptools, pip...done.  

virtualenv my_env将在当前目录中创建一个文件夹,其中将包含Python可执行文件以及pip [command]的副本,可用于安装其他软件包。

http://docs.python-guide.org/en/latest/dev/virtualenvs/

virtualenv只是将python从您计算机上的某个位置复制到新创建的my_env / bin /目录中。

2)系统python位于/usr/bin ,而我安装的各种python版本默认情况下均安装在:

 /usr/local/bin

3)我安装的各种python3.2名称都像python2.7python3.2 ,我可以使用这些名称而不是完整路径。

========虚拟环境=========

1)我在使virtualenvwrapper正常工作时遇到一些问题。 这就是我最终放入~/.bash_profile :

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/django_projects  #Not very important -- mkproject command uses this
#Added the following based on: 
#http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 
#source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

2) -p option与virtualenvwrapper的工作方式不同:我必须指定要在新环境中使用的python解释器的完整路径(当我不想使用默认的python版本时):

$ mkvirtualenv -p /usr/local/bin/python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3
New python executable in my_env/bin/python
Installing setuptools, pip...done.
Usage: source deactivate

removes the ‘bin‘ directory of the environment activated with ‘source
activate‘ from PATH. 

与virtualenv不同,virtualenvwrapper将在$ WORKON_HOME环境变量指定的位置创建环境。 这样可以将您所有的环境都放在一个地方。

 

以上是关于在virtualenv中使用不同的Python版本的主要内容,如果未能解决你的问题,请参考以下文章

在windows下使用VirtualEnv

pyenv & virtualenv 的安装与使用

使用 virtualenv 为不同的 python 版本安装带有包的鸡蛋时出错

使用 pyenv + virtualenv 打造多版本Python开发环境

Linux下使用 virtualenv 虚拟独立 Python 环境

[python] virtualenv和virtualenvwrapper管理python虚拟环境