python - 如何在 virtualenv 中 : Install python2. x?

标签 python virtualenv pip

Possible Duplicate:
Python - It is possible to install another version of Python to Virtualenv?

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

这并不理想。

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

假设我希望将 python2.6 作为独立安装包含在 env 树中,而无需到系统文件夹的符号链接(symbolic link)。

如何完成这一非凡的非关联壮举?

$ > 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 安装)可重定位。

最佳答案

更新:另请参阅 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,无需任何形式的根操作系统安装。

    $ 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 次执行此操作,则 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. 创建您的虚拟环境

    $ dep/virtualenv.py --python=/path/to/pyenv/bin/python --verbose env
    
  5. env/include/ 中修复 python2.7 的符号链接(symbolic link)

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

    $ 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
    

阿罗哈。

关于python - 如何在 virtualenv 中 : Install python2. x?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12906160/

相关文章:

python - 如何在 python 中禁用堆栈跟踪

python - scipy:如何使用 weibull_min.pdf?

python - ProcessPoolExecutor 使用 map 卡在大负载上

python - 使用两个名称冲突的 Python 库

python - 无法将关键字 'items' 解析为字段。选项是 : id, 名称

python - PIP安装无法正常工作,出现异常

python - 如何在 Mac OS X 上安装 pygtk 3?

python - 错误 : Directory is not installable. 既不是 'setup.py' 也不是 'pyproject.toml'

python - Pandas 数据透视表中的多维乘法

python - 如何修复 anaconda 中的 "Fatal error in launcher: Unable to create process using *path*/scrapy.exe"?