<p>Pythonbrew类似于Ruby的<em>rvm</em>:它是一个shell函数,允许您:</p>
<ul>
<li>构建一个或多个完整的Python自包含版本,每个版本都存储在本地
在你的主目录下。您可以用这种方式构建多个版本的Python。</li>
<li>在Python版本之间轻松切换。</li>
</ul>
<p>您构建的Python彼此完全隔离,并且与系统范围内安装的Python版本完全隔离。</p>
<p>Virtualenv是相似的,但不完全相同。它创建了一个Python虚拟环境,从概念上讲,它位于一些现有Python安装(通常是系统范围的安装,但并不总是这样)。默认情况下,在Unix平台(和Mac)上,它会创建指向各种Python库模块的符号链接,因此您实际上是在与“真正的”底层Python实现共享这些模块。但是,virtualenv有自己的“bin”目录和“site packages”目录。在Python虚拟环境中安装的任何额外内容都只能在该环境中使用。</p>
<p>Pythonbrew的一个优点是它创建的Python环境是真正的、完全的、自包含的。它们不会被底层基础Python安装中的任何错误所污染,因为没有底层基础安装。virtualenv环境并非如此。如果您创建一个virtualenv Python,然后以某种方式将它上面的基本Python实例搞砸(例如,在以根用户身份登录时意外删除了基本Python的“s it e”目录的一部分),那么您也会搞砸任何基于该Python的virtualenv环境。</p>
<p>然而,virtualenv有其自身的优势。可能最大的优点是它很轻。由于Pythonbrew从头开始编译Python,要创建其中一个环境,创建Pythonbrew Python环境需要一些时间。相比之下,创建virtualenv Python环境非常快。</p>
<p>事实上,你可以一起使用它们。这里有一种情况你可能想这么做。</p>
<ul>
<li>您的基本系统使用Python2.6。</li>
<li>您需要安装Python2.7。</li>
<li>不管出于什么原因,您不能(或者不想)在系统范围内安装Python2.7,
与Python2.6并行。</li>
</ul>
<p>在这种情况下,可以使用Pythonbrew在主目录</em>下安装一个基本的Python 2.7<em>,它不会与其他地方安装的任何内容冲突。然后,可以创建一个或多个基于Pythonbrew安装的2.7 Python的轻量级virtualenv Python环境。例如,您可以使用virtualenv以这种方式启动Python 2.7的短期测试环境。</p>
<p>我怀疑大多数人真的这么做。(我不知道)但是你没有理由不能</p>