web-dev-qa-db-de.com

Wie kann ich mehrere Versionen von Python auf dem neuesten OS X installieren und parallel verwenden?

Ich möchte Tests mit mehreren Python-Versionen unter OS X 10.11 ausführen, einschließlich:

  • Python 2.6 -?!
  • Python 2.7 - Standard - gelöst
  • Python 3.4 -?!
  • Python 3.5 - via Brew installiert - funktioniert gut
  • Conda Python 3,5 -?!

Ich möchte die Tests über tox ausführen, damit tox sie finden kann. Leider scheint, dass brew nicht 3.4 installieren möchte, da sie 3.5 hinzugefügt haben und ich natürlich nicht, 3.5 zu entfernen.

17
sorin

Dieser blog post schlägt vor, pyenv mit der gewünschten detox zu verwenden. Die Grundeinstellung mit brew erfordert:

brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper

Dann installieren Sie die gewünschten Python-Versionen mit pyenv install [version], anstatt mit Python mit brew zu installieren. Sie können die verfügbaren Versionen mit pyenv versions überprüfen.

Schließlich wird mit pip install detox sichergestellt, dass Sie tox und detox installiert haben. Dann sollten Sie die gewünschten Testversionen in Ihrem tox.ini angeben können.

18
user2943160

Ich würde wärmstens empfehlen, einen Paket-Manager wie Anaconda, https://www.continuum.io/downloads zu verwenden, wodurch die Installation verschiedener virtual-envs-Dateien einfacher wird. 

Um zum Beispiel eine virtuelle Umgebung mit numpy und Python 2.7 zu erstellen, ist dies der Befehl:

conda create --name py2_env numpy python=2.7

Und dann zu dieser Umgebung wechseln:

source activate py2_env

2
flybonzai

pyenv ist das, was Sie wollen. Das funktioniert sehr gut:

mit pyenv können Sie problemlos zwischen mehreren Python-Versionen wechseln. Es ist einfach, unauffällig und folgt der UNIX-Tradition von Einzweckwerkzeugen, die eine Sache gut machen. Dieses Projekt wurde von Rbenv und Ruby-Build abgeleitet und für Python modifiziert.

https://github.com/pyenv/pyenv

Installieren Sie es über Homebrew:

$ brew update
$ brew install pyenv

Er übernimmt für Sie den download, die Kompilierung und die Installation verschiedener Pythons, z.

$ pyenv install 3.7.2

Es kann Ihnen zeigen, welche Versionen Sie installiert haben und welche aktiv ist:

$ pyenv versions
  system
  3.6.7
* 3.7.2

Wenn Sie sich in einem neuen Projektverzeichnis befinden, teilen Sie einfach pyenv mit, welche Python-Version dort verwendet werden soll:

$ pyenv local 3.6.7  # Because e.g. tensorflow isn't compat. with 3.7 :-(

Sie können überall eine "Standardversion" festlegen:

$ pyenv global 3.7.2
1
Dogweather

pyenv ist alles in Ordnung und gut, aber ich finde, wir sollten die wunderbare pipenv Bibliothek von Kenneth Reitz erwähnen.

https://github.com/pypa/pipenv

Es bietet die Funktionalität von pyenv plus Abhängigkeitssperre, Unterstützung für .env Out-of-the-Box und vieles mehr.

0
Carlos