是否有可能安装另一个版本的Python Virtualenv?

我有一个安装了Python 2.4的networking托pipe共享帐户,但是我的代码与2.4不兼容。 有没有可能将Python 2.6直接安装到Virtualenv?

注意:我没有权限将其安装在共享服务器上。

这里是virtualenv的选项

$ virtualenv You must provide a DEST_DIR Usage: virtualenv [OPTIONS] DEST_DIR Options: --version show program's version number and exit. -h, --help show this help message and exit. -v, --verbose Increase verbosity. -q, --quiet Decrease verbosity. -p PYTHON_EXE, --python=PYTHON_EXE The Python interpreter to use, eg, --python=python2.5 will use the python2.5 interpreter to create the new environment. The default is the interpreter that virtualenv was installed with (/usr/bin/python) --clear Clear out the non-root install and start from scratch --no-site-packages Don't give access to the global site-packages dir to the virtual environment --unzip-setuptools Unzip Setuptools or Distribute when installing it --relocatable Make an EXISTING virtualenv environment relocatable. This fixes up scripts and makes all .pth files relative --distribute Use Distribute instead of Setuptools. Set environ variable VIRTUALENV_USE_DISTRIBUTE to make it the default --prompt==PROMPT Provides an alternative prompt prefix for this environment 

1)你想要做的是安装python到你可以写的目录。

你可以按照here的说明。

对于Python 2.7.1
Python source

 mkdir ~/src mkdir ~/.localpython cd ~/src wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz tar -zxvf Python-2.7.1.tgz cd Python-2.7.1 make clean ./configure --prefix=/home/${USER}/.localpython make make install 

2)安装virtualenv
virtualenv source

 cd ~/src wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.5.2.tar.gz#md5=fbcefbd8520bb64bc24a560c6019a73c tar -zxvf virtualenv-1.5.2.tar.gz cd virtualenv-1.5.2/ ~/.localpython/bin/python setup.py install 

3)使用你的本地python创build一个virtualenv
virtualenv docs

 mkdir /home/${USER}/virtualenvs cd /home/${USER}/virtualenvs ~/.localpython/bin/virtualenv py2.7 --python=/home/${USER}/.localpython/bin/python2.7 

4)激活环境

 cd ~/virtualenvs/py2.7/bin source ./activate 

5)检查

 (py2.7)$ python Python 2.7.1 (r271:86832, Mar 31 2011, 15:31:37) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> exit() (py2.7)$ deactivate $ python Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 

先决条件:

  1. sudo easy_install virtualenv
  2. sudo pip install virtualenvwrapper

用Python2.6安装virtualenv:

  1. 您可以手动下载,构build并安装另一个版本的Python到/usr/local或其他位置。
  2. 如果是/usr/local以外的其他位置,请将其添加到PATH中。
  3. 重新加载你的shell来获取更新的PATH。
  4. 从这一点上,你应该能够从你的shell python2.5python2.6调用下面的2个python二进制文件
  5. python2.6创build一个virtualenv的新实例:

    mkvirtualenv --python=python2.6 yournewenv

这个过程在任何地方安装Python2.7 ,并消除你的env文件夹内的所有绝对path引用 (由virtualenvpipe理) 。 即使virtualenv没有绝对安装。

因此,从理论上讲,您可以将顶级目录放到tar包中,然后在没有安装Python (或任何依赖)的机器上运行tarball中configuration的任何东西。

有任何问题与我联系。 这只是我正在进行的一个大型项目的一部分。 现在,下降…

  1. 设置环境文件夹。

     $ mkdir env $ mkdir pyenv $ mkdir dep 
  2. 获取Python-2.7.3和virtualenv, 没有任何forms的root操作系统安装。

     $ cd dep $ wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz $ wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py 
  3. 将Python-2.7.3解压缩并安装到pyenv目录中。 如果你正在做这个第二,第三,第N次…

     $ tar -xzvf Python-2.7.3.tgz $ cd Python-2.7.3 $ make clean $ ./configure --prefix=/path/to/pyenv $ make && make install $ cd ../../ $ ls dep env pyenv 
  4. 创build你的virtualenv

     $ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env 
  5. 修复符号链接到python2.7 env/include/

     $ ls -l env/include/ $ cd !$ $ rm python2.7 $ ln -s ../../pyenv/include/python2.7 python2.7 $ cd ../../ 
  6. 修复env中剩余的python符号链接。 您将不得不删除符号链接的目录并重新创build它们,如上所述。 另外,下面是强制就地创build符号链接的语法。

     $ ls -l env/lib/python2.7/ $ cd !$ $ ln -sf ../../../pyenv/lib/python2.7/UserDict.py UserDict.py [...repeat until all symbolic links are relative...] $ cd ../../../ 
  7. testing

     $ python --version Python 2.7.1 $ source env/bin/activate (env) $ python --version Python 2.7.3 

阿罗哈。

通常的做法是下载源代码并在本地构build和安装(但不直接在virtualenv中),然后使用本地Python安装创build一个新的virtualenv。 在某些系统上,可以下载并安装一个预编译的python,而不是从源代码编译。

我正在使用virtualenvwrapper,不想修改$ PATH,这里是如何:

 $ which python3 /usr/local/bin/python3 $ mkvirtualenv --python=/usr/local/bin/python3 env_name 

你可以使用pyenv。

有很多不同的版本anaconda,jython,pypy等等…

https://github.com/yyuu/pyenv

安装和pyenv install 3.2.6一样简单pyenv install 3.2.6

 pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.6.6 

虽然这个问题具体描述了安装2.6,我想添加一些重要的问题,以防万一有人遇到这个问题。 为了logging,我的情况是,我试图在Ubuntu 10.04盒上安装2.7。

首先,我对这里所有答案中描述的方法的动机是,从deadsnake的ppa安装Python是一个彻底的失败。 所以build立一个本地的Python是最好的select。

经过这样的尝试,我认为依靠pip的默认安装(使用sudo apt-get install pip )就足够了。 这不幸的是错误的。 事实certificate,我得到的所有短小的讨厌的问题,最终无法创造一个virtualenv。

因此,我强烈build议使用wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py && python get-pip.py --user本地安装pip 。 这个相关的问题给了我这个提示。

现在,如果这不起作用,请确保安装了用于Ubuntu的libssl-dev或用于CentOS的openssl-dev 。 用apt-getyum安装它们,然后重新构buildPython(如果已经安装,则不需要删除任何内容)。 get-pip抱怨,你可以通过在py shell上运行import ssl来检查。

最后,不要忘记声明.local/bin和本地python到path,检查which pipwhich python

现在,我发现最简单的方法是使用更高版本的Python,通过conda将其安装到conda环境中。


安装conda(你可能需要一个virtualenv)

 pip install conda 

在conda environent中安装新的Python版本

我在这里添加这个答案,因为不需要手动下载。 conda会为你做到这一点。

现在为你想要的Python版本创build一个环境。 在这个例子中,我将使用3.5.2 ,因为它是在这个写作时间的最新版本(2016年8月)。

 conda create -n py35 python=3.5.2 

将为conda创build一个环境来安装软件包


要激活这个环境(我假设linux否则检查conda文档 ):

 source activate py35 

现在通过pip或conda在环境中安装你需要的东西(conda有更好的二进制包支持)。

 conda install <package_name> 

不,但是你可以在$HOME目录下安装一个独立的Python版本(比如ActivePython )。

这种方法是最快的 ,不需要你自己编译Python。

(作为奖励,你也可以使用ActiveState的二进制包pipe理器 )

我还没有find合适的答案,所以这里是我的看法,它build立在@toszter答案,但不使用系统Python (你可能知道,在处理多个系统时,在系统级安装setuptools和virtualenv并不总是好主意Pythonconfiguration):

 #!/bin/sh mkdir python_ve cd python_ve MYROOT=`pwd` mkdir env pyenv dep cd ${MYROOT}/dep wget https://pypi.python.org/packages/source/s/setuptools/setuptools-15.2.tar.gz#md5=a9028a9794fc7ae02320d32e2d7e12ee wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz xz -d Python-2.7.9.tar.xz cd ${MYROOT}/pyenv tar xf ../dep/Python-2.7.9.tar cd Python-2.7.9 ./configure --prefix=${MYROOT}/pyenv && make -j 4 && make install cd ${MYROOT}/pyenv tar xzf ../dep/setuptools-15.2.tar.gz cd ${MYROOT} pyenv/bin/python dep/virtualenv.py --no-setuptools --python=${MYROOT}/pyenv/bin/python --verbose env env/bin/python pyenv/setuptools-15.2/setup.py install env/bin/easy_install pip echo "virtualenv in ${MYROOT}/env" 

在这里打破鸡蛋问题的诀窍就是先制作没有setuptools的virtualenv,否则会失败(找不到pip)。 可以直接安装pip / wheel,但easy_install是我想起来的第一个东西。 另外,脚本可以通过分解具体版本来改进。

NB。 在脚本中使用xz。

首先,谢谢DTing真棒的答案。 这是非常完美的。

对于那些在共享主机中没有GCC访问权限的人来说,请使用ActivePython,而不是像斯科特·斯塔福德(Scott Stafford)提到的那样使用普通的Python。 这是这个命令。

 wget http://downloads.activestate.com/ActivePython/releases/2.7.13.2713/ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz tar -zxvf ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785.tar.gz cd ActivePython-2.7.13.2713-linux-x86_64-glibc-2.3.6-401785 ./install.sh 

它会问你的path到python目录。 input

 ../../.localpython 

只需在DTing的答案中将上面的步骤replace为步骤1,然后继续步骤2即可。 请注意,ActivePython包URL可能随新版本而改变。 您可以随时从这里获取新的url: http : //www.activestate.com/activepython/downloads

基于URL,您需要根据收到的文件更改tar和cd命令的名称。