7

我查看了virtualenv文档,并在 StackOverflow 找到了这个问题。但是,既不回答我的问题,或者我可能遗漏了什么,所以我在问。

如何创建一个virtualenv包含python不依赖于python“主机”(系统范围)的环境?即我想要一个完全独立的virtualenv,它自己的 Python 2.7 是从源代码编译的。另一个属性很重要:因为virtualenv与内部不同,chroot必须处理不同的绝对路径。pythonvirtualenv

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

我怎样才能做到这一点?

基本原理

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

我需要的属性:

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

在这个问题的范围内可以忽略的问题:

  • 架构/平台。这将只在单一架构上运行,并且virtualenv将为每个平台构建环境(目前只有各种 Linux 发行版)。
4

1 回答 1

6
  1. 获取python源码
  2. ./configure --prefix=/dest
  3. make && make install

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

要使用此安装而不是系统 python,只需确保放在/dest/bin标准PATH位置之前。

如果这对您来说还不够,您可以使用此 python 安装设置 virtualenv...

于 2013-04-15T17:46:08.453 回答