Python有类似于Ruby的'rvm'的等效工具吗?

146

Q: Python中是否有与Ruby版本管理器“rvm”相当的功能?


(RVM允许您轻松地在不同版本的Ruby解释器和不同的gem(模块)之间完全切换。关于解释器和gem的下载-构建-安装-切换的所有事项都通过调用rvm来处理,它们在您的常规用户帐户下运行。)

6个回答

97

3
我感到困惑。你在哪里可以安装不同版本的Python?似乎只是使用系统默认的Python版本。 - docwhat
4
有没有一种方法可以将特定的Python安装(比如2.7)与一个项目中的某些蛋(egg)捆绑在一起,而将另一些蛋与另一个项目捆绑?RVM可以无缝管理所有这些东西,而sudo已经过时了。 - Kyle Wild
4
Virtualenv可以在不同版本的Python之间,以及不同的egg集合之间进行切换;但它不能处理Python本身的编译和安装。RVM对于Ruby做了这件事情。如果你想构建一个特定版本的Python,因为由于某种原因无法通过包安装它,则应该使用pythonbrew(就在下面的另一个答案中)。 - jpetazzo
3
我不认为这支持多个Python版本。 - Dogweather
3
RVM负责编译Ruby解释器,并允许下载预编译版本(如果有)。保持原意,进一步简化并使其易于理解。不包含任何额外信息。 - Andrey Mikhaylov - lolmaus
显示剩余4条评论

85

1
作为一个相当熟练使用 rvm 的人来说,pythonbrew 完全是一件轻而易举的事情。谢谢你的建议! - elmt
1
非常感谢。我相信这是从现在开始的真正答案。 - sayth
应该将pypy和jython添加到已知Python列表中,这样会更好。 - sayth
但它只支持CPython,不支持Jython和pypy。RVM支持所有类型的Rubies。 - Tyler Liu
现在的自述文件说它“不再处于活跃开发状态”。:( - dusan
显示剩余2条评论

51

我创建了 pyenv,它是 Ruby 的 rbenv 的一个分支,并针对 Python 进行了修改。与 pythonz 类似,pyenv 也支持 Stackless、PyPy 和 Jython。


6

跟进hytdsh的回答(将近两年后)...

pythonz是pythonbrew的一个分支,它增加了对Stackless、PyPy和Jython的支持。

如果你喜欢rvm如何处理不同的解释器,那么看一下pythonz可能是值得的。如果你只是在使用CPython,差异就不那么显著了。


5

如果您使用的是Macports,可以选择使用python_select。 使用以下命令安装python_select

$ sudo port install python_select

假设通过Macports已经安装了Python 2.6和2.5,您可以像这样切换Python版本:

$ sudo python_select python25
=> Selecting version "python25" for python
$ python --version
=> 2.5.5
$ sudo python_select python26
=> Selecting version "python26" for python
$ python --version
=> 2.6.6

2

pyenv 1.2.15可以为您构建和安装Python

也许在早期版本中这是不可能的,但当我在1.2.15中进行测试时,我注意到了pyenv install选项,它可以工作:

pyenv install 3.8.0

因此,我认为称pyenv为RVM的替代品是合理的。
我在这里提供了一个完整详细的使用示例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接