Czy istnieje odpowiednik rvm Rubiego w Pythonie?

145

P: Czy w Pythonie mamy coś funkcjonalnie równoważnego z menedżerem wersji Ruby „rvm” ?


( RVM pozwala łatwo przełączać się całkowicie pomiędzy różnymi wersjami interpretera Ruby i różnych zestawów kamieni (moduły). Wszystko dotyczące download-build-install-przełącznik z tłumacza (-s) i kamienie zostanie załatwione przez wywoływanie RVM. Jest wszystkie działają na Twoim zwykłym koncie użytkownika).

Conny
źródło

Odpowiedzi:

94

Tak, jest to virtualenv wraz z virtualenvwrapper .

aktualizacja: możesz zainstalować oba na raz za pomocą virtualenv burrito .

Aktualizacja : prawidłowa odpowiedź to teraz prawdopodobnie pyenv .

W przypadku obliczeń naukowych odpowiednim narzędziem jest anakonda .

Olivier Verdier
źródło
2
Jestem zmieszany. Gdzie można zainstalować różne wersje Pythona? Wygląda na to, że po prostu używa systemowej wersji Pythona.
docwhat
4
Ale czy istnieje sposób na połączenie konkretnej instalacji Pythona (powiedzmy 2.7) z określonymi jajami w jednym projekcie i niektórymi innymi jajami w innym? RVM bezproblemowo zarządza wszystkimi tymi rzeczami i sudonależy do przeszłości.
Kyle Wild
4
Virtualenv pozwala na żonglowanie między wersjami Pythona i różnymi zestawami jajek; ale nie zajmie się kompilacją + instalacją samego Pythona. RVM robi dokładnie to dla Rubiego. Jeśli chcesz zbudować określoną wersję Pythona, ponieważ z jakiegoś powodu nie możesz jej zainstalować z pakietów, zamiast tego sprawdź pythonbrew (tylko inna odpowiedź poniżej).
jpetazzo,
3
Nie widzę, jak to obsługuje kilka wersji Pythona.
Dogweather
3
RVM zajmuje się kompilacją interpreterów Rubiego. Umożliwia także pobieranie wstępnie skompilowanych, jeśli są dostępne.
Andrey Mikhaylov - lolmaus 30.07.14
85

Pythonbrew nie jest już w fazie rozwoju. Poprzedni opiekun sugeruje użycie zamiast tego "PyEnv" (patrz poniżej) ".

nadszedł pythonbrew! http://github.com/utahta/pythonbrew

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

hytdsh
źródło
Ciekawe, może warto spróbować. Widzę, że wywołania jego poleceń są dość podobne do wywołań dla rvm...
conny
1
Jako ktoś, kto jest dość biegły w rvm, pythonbrew był absolutnym powiewem, do którego można się przyzwyczaić. Dzięki za wskazówkę!
elmt
1
Dziękuję Ci bardzo. Uważam, że od teraz jest to prawdziwa odpowiedź.
powiedzmy
Należy dodać, że dobrze byłoby zobaczyć pypy i jython dodane do listy znanych pythonów.
powiedzmy
Nie tak dużo ruchu. Czy nadal warto się temu przyjrzeć?
Dębilski
51

Stworzyłem pyenv, który jest widelcem rbenv Ruby'ego i zmodyfikowany dla Pythona. Podobnie jak pythonz, pyenv obsługuje również Stackless, PyPy i Jython.

Yuu Yamashita
źródło
6

Kontynuując odpowiedź hytdsh (prawie dwa lata później) ...

pythonz rozwidlenie pythonbrew, które dodaje obsługę Stackless, PyPy i Jython.

Jeśli podoba Ci się sposób, w jaki rvm obsługuje różne interpretery, warto przyjrzeć się pythonzowi. Jeśli pracujesz ściśle z CPythonem, różnica jest mniej znacząca.

Chris Olstrom
źródło
5

Opcjonalnie, jeśli używasz Macports, możesz użyć python_select. Zainstaluj za python_selectpomocą:

$ sudo port install python_select

Zakładając, że Python 2.6 i 2.5 mają zainstalowaną pszczołę przez Macports, możesz przełączać Pythony w następujący sposób:

$ 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
źródło
0

pyenv 1.2.15 może zbudować i zainstalować Pythona dla Ciebie

Może nie było to możliwe we wcześniejszej wersji, ale kiedy testowałem w 1.2.15 zauważyłem pyenv installopcję, która działała:

pyenv install 3.8.0

Dlatego uważam, że rozsądne jest wezwanie pyenvzamiennika RVM.

W pełni szczegółowy przykład jego użycia podałem pod adresem: apt-get install dla różnych wersji Pythona

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
źródło