webentwicklung-frage-antwort-db.com.de

MacOS: Wie kann ich homebrew Python herabstufen?

Ich verwende MacOS Sierra 10.12.4 und habe festgestellt, dass der Homebrew Python auf Version 2.7.13 aktualisiert wurde. Wie kann ich zurück zu 2.7.10 wechseln?

11
leota

Erstens gilt es allgemein als schlechte Praxis, den Landcode des Benutzers auf System-Python zu setzen, wenn Sie dies vermeiden können. Sie müssen davon ausgehen, dass für die Systemdienstprogramme eine bestimmte Version von Systempython erforderlich ist, und der Landcode Ihres Benutzers kann dann für immer an diese Pythonversion gebunden werden, was nicht sinnvoll ist.

Zweitens ist mir unklar, warum Sie 2.7.10 statt 2.7.13 benötigen. Alle Pythons mit der gleichen Nebenversionsnummer (2.7) sollten immer kompatibel sein . Wenn Sie 2.6 benötigen, wäre dies eine andere Geschichte, da dies eine Änderung in der Nebenversion ist. Code, der für 2.7.x geschrieben wurde, sollte alle kompatibel sein.

Vorausgesetzt, Ihr Anwendungsfall setzt tatsächlich voraus, dass Sie eine bestimmte Python-Version verwenden, eine Lösung finden und sicherstellen, dass Sie den System-Python zunächst wirklich aktualisiert haben. Wenn Sie den Befehl eingeben: which python, erhalten Sie /usr/bin/python (System) oder /usr/local/bin/python (brew-installierter User-Land-Python). Zum Beispiel gibt /usr/bin/python -V mir 2.7.10, obwohl python -V mir 2.7.13 (via brew) ergibt.

Es ist möglich, dass Sie den neuesten Python 2.7.x über brew installiert haben, wodurch /usr/local/bin/python als symbolischer Link in Ihren $PATH eingefügt wird, oder Sie haben möglicherweise einen python-Alias, der auf eine Stelle zeigt, die Sie nicht möchten. Überprüfen Sie Ihre $ PATH-Bestellung.

Sie können Ihren Homebrew-Python zurücksetzen, indem Sie ihn entfernen (brew uninstall python) oder den Symlink (ln -s -f /usr/bin/python /usr/local/bin/python) ändern. Durch die Verwendung von Virtualenv entfällt jedoch die Notwendigkeit vieler dieser Arten von Gymnastik.

Wenn Sie möchten, dass ältere Versionen von Python über Homebrew installiert werden, sollte diese Antwort hilfreich sein: Wie installiere ich ältere Formeln mit Brew?

Eine letzte Möglichkeit: Wenn Sie unbedingt eine bestimmte Python-Version haben müssen, kann pyenv / helfen.

brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
6
mattmc3

Sie können Versionen mit brew switch wechseln. Zum Beispiel habe ich Python 3.7.0 auf 3.6.5 wie folgt heruntergestuft:

brew switch python 3.6.5

Leider ist der brew versions-Befehl veraltet und es ist derzeit ziemlich kompliziert , um die verfügbaren Versionen zu finden . Ich würde gerne eine einfache Lösung dafür hören. Wenn Sie die Version kennen, zu der Sie wechseln möchten, versuchen Sie es mit dem obigen Befehl.

Ich stimme mit den Antworten überein, dass Virtualenvs eine gute Idee sind, aber die Python-Version, die Sie in Homebrew benötigen, ist auch eine gute Idee. Bei der Erstellung meiner virtualenvs war bin/python ein symbolischer Link zu /usr/local/bin/python, sodass bei der Aktualisierung von Python über Homebrew alles brach.

23
Joseph Sheedy

Laden Sie python 3.6.0 von https://www.python.org/downloads/release/python-360/ herunter. 

Installieren Sie es als normales Paket.

cd /Library/Frameworks/Python.framework/Version ausführen

Run ls und alle installierten Python-Versionen werden hier angezeigt. 

Sudo rm -rf 3.7 ausführen

Überprüfen Sie die Version jetzt durch python3 -V und es wird jetzt 3.6 angezeigt.

0
Sidharth Taneja