HOWTO:在virtualenv中安装python2.x?

时间:2012-10-16 01:02:37

标签: python virtualenv pip

  

可能重复:
  Python - It is possible to install another version of Python to Virtualenv?

在我的(virtualenv激活的)env文件夹中,好像python2.7文件夹的系统python安装的绝对路径符号链接。

这不太理想。

即使我从本地路径安装,并使用virtualenv在文件夹env中设置和环境,Python的路径也是绝对的,并且建立了对OS环境的依赖。我想摆脱这种依赖,让python解释器以及依赖它的所有软件完全独立。

让我们想象一下,我希望python2.6作为STAND-ALONE安装包含在env树中,而没有符号链接到我的系统文件夹。

如何实现非常非连锁的这一壮举?

$ > pwd 
/Users/foo/development/v1/bar/env
(env)
$ > ls -l lib/python2.7/
total 920
lrwxr-xr-x  1 foo  staff     82 Oct 15 16:48 UserDict.py -> /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py
...
lrwxr-xr-x  1 foo  staff     85 Oct 15 16:48 _weakrefset.py -> /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/_weakrefset.py

感谢您的帮助。

编辑:此外,将virtualenv(包括本地python安装)重定位是最理想的。

2 个答案:

答案 0 :(得分:3)

更新:请同时参阅Is it possible to install another version of Python to Virtualenv?

非常感谢@millimoose等人

这是我最终做的,非常具体。如果我将来遇到问题,我会更新。

  1. 设置环境文件夹。

    $ mkdir env
    $ mkdir pyenv
    $ mkdir dep
    
  2. 获取Python-2.7.3和virtualenv ,无需任何形式的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目录中。如果您在第2次,第3次,第N次这样做,make clean是可选的......

    $ 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. 创建你的virtualenv

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

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

    $ 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. 测试

    $ python --version
    Python 2.7.1
    $ source env/bin/activate
    (env)
    $ python --version
    Python 2.7.3
    
  8. 阿罗哈。

答案 1 :(得分:1)

  1. 使用pythonbrew获取隔离的Python安装。
  2. 使用该Python安装来启动虚拟环境。
  3. 制作虚拟环境relocatable