2

可能重复:
Python - 是否可以将另一个版本的 Python 安装到 Virtualenv?

在我的(virtualenv 激活的)env 文件夹中,似乎 python2.7 文件夹具有指向我的系统 python 安装 的绝对路径的符号链接。

这并不理想。

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

假设我希望将 python2.6 作为独立安装包含在环境树中,而没有指向我的系统文件夹的符号链接。

一个人如何完成这一非凡的非联系的壮举?

$ > 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安装)可重定位是最理想的。

4

2 回答 2

3

更新:另请参阅是否可以将另一个版本的 Python 安装到 Virtualenv?

非常感谢@millimoose 等人。

这就是我最终要做的,非常具体。如果以后遇到问题我会更新。

  1. 设置环境文件夹。

    $ mkdir env
    $ mkdir pyenv
    $ mkdir dep
    
  2. 无需任何形式的根操作系统安装即可获得 Python-2.7.3 和 virtualenv 。

    $ 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目录中。make clean如果您第二次、第三次、第 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. 创建你的虚拟环境

    $ 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 符号链接。如上所述,您必须删除符号链接的目录并重新创建它们。此外,这里是强制就地符号链接创建的语法。

    $ 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
    

阿罗哈。

于 2012-10-17T22:51:05.030 回答
1
  1. 使用pythonbrew获取独立的 Python 安装。
  2. 使用该 Python 安装来启动您的虚拟环境。
  3. 使虚拟环境可重定位
于 2012-10-16T16:49:34.173 回答