从virtualenv环境中的源代码tarball构建的可重定位(自包含)Python?

0xC*_*22L 7 python virtualenv python-2.7

我查看了virtualenv文档,并在StackOverflow上找到了这个问题.但是,既没有回答我的问题,也没有回答我的问题,所以我在问.

如何创建一个virtualenv包含python不依赖于python"主机" (系统范围)的环境?即我想virtualenv从源代码编译自己的Python 2.7 完全自包含.另一个特性是很重要的:因为virtualenv是不一样chrootpython里面virtualenv有以应付不同的绝对路径.

我认为最接近我想要的是virtualenv --relocatable内部有自己的Python安装.

我怎样才能做到这一点?

合理

我有一些较旧的Linux盒子,通过包管理器提供不同版本的Python.管理员不允许我在盒子上构建更新的Python,所以我需要能够将Python从源代码安装到我所拥有的受限环境中.

我需要的属性:

  • virtualenv环境应该是完全独立的(完整的Python与所有库等)
  • python部署时,应内部工作无关的绝对路径
    • 我知道$ENV/bin/python似乎这样做,但它似乎也依赖于已python安装的系统范围.我想完全削减这种依赖,滚动我自己的Python.
  • 应该表现得像,virtualenv --relocatable但也需要包含完整的Python安装.

对于此问题的范围可以忽略的问题:

  • 建筑/平台.这将仅在单个体系结构上运行,并且virtualenv将为每个平台(当前仅各种Linux发行版)构建环境.

mat*_*ata 7

  1. 得到python源码
  2. ./configure --prefix=/dest
  3. make && make install

恭喜你,你现在有一个完全独立于系统python的python安装/dest.移动这个目录不应该是一个问题,如果你的意思是"可重定位".

要使用此安装,而不是系统蟒蛇,只要确保把/dest/binPATH标准位置之前.

如果这还不够,你可以使用这个python安装设置virtualenv ...

  • 您需要执行哪些额外步骤才能获得"可重定位"的python发行版? (5认同)
  • 到目前为止,我构建的 Python 不同意它应该可重定位的说法。但我会继续努力一点。 (2认同)