Existe um equivalente python do 'rvm' de Ruby?

145

P: Temos algo funcionalmente equivalente em Python ao gerenciador de versões Ruby 'rvm' ?


( RVM permite que você facilmente mudar completamente entre diferentes versões do interpretador ruby e diferentes conjuntos de gemas (módulos). Tudo a respeito do download-build-instalar-switch de intérprete (s) e pedras preciosas se cuidado invocando rvm. É todos são executados em sua conta de usuário comum.)

conny
fonte

Respostas:

94

Sim, é virtualenv junto com virtualenvwrapper .

atualização: você pode instalar os dois ao mesmo tempo com o virtualenv burrito .

Atualização : a resposta correta agora é provavelmente pyenv .

Para a computação científica, a ferramenta correspondente é a anaconda .

Olivier Verdier
fonte
2
Estou confuso. Onde você pode instalar versões diferentes do python? Parece estar apenas usando a versão do sistema do python.
docwhat
4
Mas existe uma maneira de agrupar uma instalação específica do Python (digamos, 2.7) com certos ovos em um projeto e com outros outros ovos em outro? O RVM gerencia tudo isso perfeitamente e sudoé coisa do passado.
Kyle selvagem
4
O Virtualenv permite fazer malabarismos entre versões do Python e entre diferentes conjuntos de ovos; mas não vai lidar com a compilação + instalação do próprio Python. O RVM faz exatamente isso para Ruby. Se você deseja criar uma versão específica do Python porque não pode instalá-lo fora dos pacotes por algum motivo, verifique o pythonbrew (apenas a outra resposta logo abaixo).
precisa saber é o seguinte
3
Não vejo como isso suporta várias versões do python.
Dogweather 27/09/13
3
O RVM cuida da compilação de intérpretes Ruby. Ele também permite o download dos pré-compilados, se disponível.
Andrey Mikhaylov - lolmaus
85

Pythonbrew não está mais em desenvolvimento. O ex-mantenedor sugere usar "PyEnv" (veja abaixo) ".

pythonbrew chegou! http://github.com/utahta/pythonbrew

pyenv: https://github.com/yyuu/pyenv

hytdsh
fonte
Interessante, pode valer a pena tentar. Vejo que suas chamadas de comando são bastante semelhantes a de que rvm...
conny
1
Como alguém que é bastante hábil em rvm, o pythonbrew era uma brisa absoluta para se acostumar. Obrigado pela dica!
elmt
1
Muito obrigado. Eu acredito que esta é a resposta real a partir de agora.
sayth
Deve ser bom ver pypy e jython adicionados à lista de pythons conhecidos.
sayth
Não há mais muito tráfego. Ainda vale a pena investigar isso?
23412 Debilski
51

Criei pyenv, que é um fork do rbenv do Ruby e modifiquei para o Python. Como o pythonz, o pyenv também suporta Stackless, PyPy e Jython.

Yuu Yamashita
fonte
6

Seguindo a resposta do hytdsh (quase dois anos depois) ...

pythonz, um fork do pythonbrew que adiciona suporte para Stackless, PyPy e Jython.

Se você gosta de como o rvm lida com diferentes intérpretes, vale a pena dar uma olhada no pythonz. Se você trabalha estritamente com o CPython, a diferença é menos significativa.

Chris Olstrom
fonte
5

Opcionalmente, se você estiver usando Macports, poderá usá-lo python_select. Instale python_selectcom:

$ sudo port install python_select

Supondo que python 2.6 e 2.5 tenham bee instalado via Macports, você pode alternar pythons da seguinte forma:

$ 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
sahglie
fonte
0

O pyenv 1.2.15 pode criar e instalar o Python para você

Talvez isso não fosse possível na versão anterior, mas quando testei na versão 1.2.15, notei a pyenv installopção que funcionava:

pyenv install 3.8.0

Portanto, considero razoável chamar pyenvuma substituição para o RVM.

Eu dei um exemplo totalmente detalhado de seu uso em: apt-get install para diferentes versões do python

Ciro Santilli adicionou uma nova foto
fonte