¿Hay un pitón equivalente al 'rvm' de Ruby?

145

P: ¿Tenemos algo funcionalmente equivalente en Python al administrador de versiones de Ruby 'rvm' ?


( RVM le permite cambiar fácilmente por completo entre diferentes versiones del intérprete de ruby y diferentes conjuntos de gemas (módulos). Todo lo relacionado con la descarga-construcción-instalación-cambio de intérprete (-s) y gemas se soluciona invocando rvm. Es todos se ejecutan con su cuenta de usuario habitual).

conny
fuente

Respuestas:

94

Sí, es virtualenv junto con virtualenvwrapper .

actualización: puede instalar ambos a la vez con virtualenv burrito .

Actualización : la respuesta correcta ahora es probablemente pyenv .

Para la computación científica, la herramienta correspondiente es anaconda .

Olivier Verdier
fuente
2
Estoy confundido. ¿Dónde se pueden instalar diferentes versiones de python? Parece estar usando solo la versión del sistema de python.
docwhat
44
Pero, ¿hay alguna manera de agrupar una instalación de Python específica (por ejemplo, 2.7) con ciertos huevos en un proyecto y con ciertos otros huevos en otro? RVM gestiona todo esto sin problemas, y sudoes cosa del pasado.
Kyle Wild
44
Virtualenv permite hacer malabarismos entre versiones de Python y entre diferentes conjuntos de huevos; pero no se ocupará de la compilación + instalación de Python en sí. RVM hace exactamente eso por Ruby. Si desea construir una versión específica de Python porque no puede instalarla fuera de los paquetes por alguna razón, entonces debe verificar pythonbrew en su lugar (solo la otra respuesta a continuación).
jpetazzo
3
No veo cómo esto admite varias versiones de python.
Dogweather
3
RVM se encarga de compilar intérpretes de Ruby. También permite descargar los precompilados, si están disponibles.
Andrey Mikhaylov - lolmaus
85

Pythonbrew ya no está en desarrollo. El antiguo responsable de mantenimiento sugiere utilizar "PyEnv" en su lugar (ver más abajo) ".

¡Pythonbrew ha llegado! http://github.com/utahta/pythonbrew

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

hytdsh
fuente
Interesante, podría valer la pena intentarlo. Veo que sus invocaciones de comandos son bastante similares a las de rvm...
conny
1
Como alguien que es muy experto en rvm, pythonbrew fue una brisa absoluta a la que acostumbrarse. ¡Gracias por el consejo!
elmt
1
Muchas gracias. Creo que esta es la verdadera respuesta de ahora en adelante.
dice el
Debería agregar ser bueno para ver pypy y jython agregados a la lista de pitones conocidos.
dice el
Ya no hay tanto tráfico. ¿Todavía vale la pena estudiarlo?
Debilski
51

He creado pyenv que es un tenedor de Ruby rbenv y modificado para Python. Al igual que pythonz, pyenv también es compatible con Stackless, PyPy y Jython.

Yuu Yamashita
fuente
6

Seguimiento de la respuesta de hytdsh (casi dos años después) ...

pythonz es una bifurcación de pythonbrew que agrega soporte para Stackless, PyPy y Jython.

Si le gusta cómo rvm maneja los diferentes intérpretes, puede valer la pena echar un vistazo a pythonz. Si está trabajando estrictamente con CPython, la diferencia es menos significativa.

Chris Olstrom
fuente
5

Opcionalmente, si está utilizando Macports, puede utilizarlo python_select. Instalar python_selectcon:

$ sudo port install python_select

Suponiendo que Python 2.6 y 2.5 se hayan instalado a través de Macports, puede cambiar las pitones de esta manera:

$ 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
fuente
0

pyenv 1.2.15 puede construir e instalar Python por usted

Quizás esto no era posible en una versión anterior, pero cuando probé en 1.2.15 noté la pyenv installopción que funcionaba:

pyenv install 3.8.0

Por lo tanto, siento que es razonable llamar a pyenvun reemplazo para RVM.

He dado un ejemplo completamente detallado de su uso en: apt-get install para diferentes versiones de python

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
fuente