Gibt es ein Python-Äquivalent zu Rubys 'rvm'?


145

F: Haben wir in Python etwas, das dem Ruby-Versionsmanager 'rvm' funktional entspricht ?


( RVM können Sie einfach wechseln vollständig zwischen den verschiedenen Versionen des Ruby - Interpreters und verschiedene Sätze von Edelsteinen (Module). Alles über Download-build-install-Schalter des Dolmetschers (-s) und Edelsteine der Pflege rvm durch Aufrufen genommen wird. Es ist Alle laufen unter Ihrem regulären Benutzerkonto.)

Antworten:


94

Ja, es ist virtualenv zusammen mit virtualenvwrapper .

Update: Sie können beide gleichzeitig mit virtualenv burrito installieren .

Update : Die richtige Antwort ist jetzt wahrscheinlich pyenv .

Für das wissenschaftliche Rechnen ist das entsprechende Werkzeug Anakonda .


2
Ich bin verwirrt. Wo können Sie verschiedene Versionen von Python installieren? Es scheint nur die Python-Version des Systems zu verwenden.
docwhat

4
Aber gibt es eine Möglichkeit, eine bestimmte Python-Installation (z. B. 2.7) mit bestimmten Eiern in einem Projekt und mit bestimmten anderen Eiern in einem anderen Projekt zu bündeln? RVM verwaltet all diese sudoDinge nahtlos und gehört der Vergangenheit an.
Kyle Wild

4
Virtualenv ermöglicht das Jonglieren zwischen Python-Versionen und zwischen verschiedenen Eiersätzen. Die Kompilierung und Installation von Python selbst wird jedoch nicht behandelt. RVM macht genau das für Ruby. Wenn Sie eine bestimmte Version von Python erstellen möchten, weil Sie sie aus irgendeinem Grund nicht aus Paketen heraus installieren können, möchten Sie stattdessen Pythonbrew überprüfen (nur die andere Antwort unten).
Jpetazzo

3
Ich sehe nicht, wie dies mehrere Versionen von Python unterstützt.
Dogweather

3
RVM kümmert sich um das Kompilieren von Ruby-Interpreten. Es ermöglicht auch das Herunterladen vorkompilierter Dateien, sofern verfügbar.
Andrey Mikhaylov - lolmaus

85

Pythonbrew befindet sich nicht mehr in der Entwicklung. Der frühere Betreuer schlägt vor, stattdessen "PyEnv" zu verwenden (siehe unten).

Pythonbrew ist gekommen! http://github.com/utahta/pythonbrew

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


Interessant, könnte einen Versuch wert sein. Ich sehe, dass seine Befehlsaufrufe denen von rvm...
conny

1
Als jemand, der sich mit RVM auskennt, war Pythonbrew ein Kinderspiel, an das man sich gewöhnen musste. Danke für den Tipp!
Elmt

1
Vielen Dank. Ich glaube, das ist von nun an die wahre Antwort.
Sayth

Sollte gut sein, um zu sehen, dass Pypy und Jython zur Liste der bekannten Pythons hinzugefügt wurden.
Sayth

Nicht mehr so ​​viel Verkehr. Lohnt es sich noch, sich das anzuschauen?
Debilski

51

Ich habe pyenv erstellt , eine Gabelung von Rubys rbenv, und für Python modifiziert. Wie Pythonz unterstützt auch Pyenv Stackless, PyPy und Jython.


6

Weiterverfolgung der Antwort von hytdsh (fast zwei Jahre später) ...

Pythonz eine Gabelung von Pythonbrew, die Unterstützung für Stackless, PyPy und Jython bietet.

Wenn Ihnen gefällt, wie rvm mit verschiedenen Interpreten umgeht, sollten Sie sich Pythonz ansehen. Wenn Sie ausschließlich mit CPython arbeiten, ist der Unterschied weniger bedeutend.


5

Wenn Sie Macports verwenden, können Sie diese optional verwenden python_select. Installieren python_selectmit:

$ sudo port install python_select

Angenommen, Python 2.6 und 2.5 wurden über Macports installiert, können Sie Python wie folgt wechseln:

$ 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

0

pyenv 1.2.15 kann Python für Sie erstellen und installieren

Vielleicht war dies in früheren Versionen nicht möglich, aber als ich in 1.2.15 getestet habe, habe ich die pyenv installOption bemerkt, die funktioniert hat:

pyenv install 3.8.0

Daher halte ich es für sinnvoll, pyenveinen Ersatz für RVM zu nennen .

Ich habe ein ausführliches Beispiel für seine Verwendung gegeben: apt-get install für verschiedene Python-Versionen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.