wake-up-neo.net

Wie kann ich eine frühere Version von Python 3 unter macOS mit Homebrew installieren?

Wie kann ich eine frühere Version von Python 3 unter macOS mit brew installieren?

Mit dem Befehl brew install python habe ich die neueste Version von Python 3 (derzeit v3.7.0), aber ich möchte die letzte Version von Python 3.6 (derzeit 3.6.5) .

Ich habe über ein anderes Paket pyenv gelesen, das bei der Handhabung unterschiedlicher python -Installationen behilflich sein kann, aber diese Lösung ist für mich nicht geeignet.

112
ePi272314

Kurze Antwort

Um eine Neuinstallation von Python 3.6.5 durchzuführen, verwenden Sie:

brew unlink python # ONLY if you have installed (with brew) another version of python 3
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

Wenn Sie eine zuvor installierte Version wiederherstellen möchten, gehen Sie wie folgt vor:

brew info python           # To see what you have previously installed
brew switch python 3.x.x_x # Ex. 3.6.5_1

Lange Antwort

Es gibt zwei Formeln für die Installation von Python mit Homebrew: [email protected] und python.
Das erste ist für Python 2 und das zweite für Python 3.

Hinweis: Im Internet finden Sie veraltete Antworten, in denen python3 als Formelname für die Installation von Python angegeben ist. Version 3. Jetzt ist es nur noch python!

Standardmäßig können Sie mit diesen Formeln die neueste Version der entsprechenden Hauptversion von Python installieren. Daher können Sie eine Nebenversion wie 3.6 nicht direkt installieren.

Lösung

Mit brew können Sie ein Paket unter Verwendung der Adresse der Formel installieren, beispielsweise in einem Git-Repository.

brew install https://the/address/to/the/formula/FORMULA_NAME.rb

Oder speziell für Python 3

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/COMMIT_IDENTIFIER/Formula/python.rb

Die Adresse, die Sie angeben müssen, ist die Adresse bis zum letzten Festschreiben der Formel (python.rb) für die gewünschte Version. Sie finden die Commint-ID, indem Sie sich den Verlauf für homebrew-core/Formula/python.rb ansehen

https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb

Python> 3.6.5

Im obigen Link finden Sie keine Formel für eine Version von Python über 3.6.5. Nachdem die Betreuer dieses (offiziellen) Repositorys Python 3.7 veröffentlicht haben, übermitteln sie nur Aktualisierungen an das Rezept von Python 3.7.

Wie oben erklärt, haben Sie bei Homebrew nur Python 2 (Python @ 2) und Python 3 (Python), es gibt keine explizite Formel für Python 3.6 .

Obwohl diese geringfügigen Aktualisierungen in den meisten Fällen und für die meisten Benutzer zumeist irrelevant sind, suche ich, ob jemand eine explizite Formel für 3.6 erstellt hat.

216
ePi272314

Als Update dabei

brew unlink python # If you have installed (with brew) another version of python
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

Sie können begegnen

Error: python contains a recursive dependency on itself:
  python depends on sphinx-doc
  sphinx-doc depends on python

Fügen Sie das Argument --ignore-dependencies hinzu, um die Installation zu umgehen.

brew unlink python # If you have installed (with brew) another version of python
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
30
François

Ich habe zuerst python 3.7 installiert

brew install python3
brew unlink python

dann habe ich python 3.6.5 über den obigen Link installiert

brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb --ignore-dependencies

Danach habe ich brew link --overwrite python ausgeführt. Jetzt habe ich alle Pythons im System, um die virtuellen Umgebungen zu erstellen.

[email protected]~ $ python --version
Python 2.7.10
[email protected]~ $ python3.7 --version
Python 3.7.1
[email protected]~ $ python3.6 --version
Python 3.6.5

So erstellen Sie eine Python 3.7 virtuelle Umgebung.

[email protected]~ $ virtualenv -p python3.7 env
Already using interpreter /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/mian/env/bin/python3.7
Also creating executable in /Users/mian/env/bin/python
Installing setuptools, pip, wheel...
done.
[email protected]~ $ source env/bin/activate
(env) [email protected]~ $ python --version
Python 3.7.1
(env) [email protected]~ $ deactivate

So erstellen Sie eine Python 3.6 virtuelle Umgebung

[email protected]~ $ virtualenv -p python3.6 env
Running virtualenv with interpreter /usr/local/bin/python3.6
Using base prefix '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/mian/env/bin/python3.6
Not overwriting existing python script /Users/mian/env/bin/python (you must use /Users/mian/env/bin/python3.6)
Installing setuptools, pip, wheel...
done.
[email protected]~ $ source env/bin/activate
(env) [email protected]~ $ python --version
Python 3.6.5
(env) [email protected]~ $ 
14

Ich habe alle obigen Antworten ausprobiert, um Python 3.4.4 zu installieren. Die Installation von python hat funktioniert, aber PIP wurde nicht installiert und ich konnte nichts tun, damit es funktioniert. Ich habe Mac OSX Mojave verwendet, was zu Problemen mit zlib, openssl, führt.

Was nicht zu tun ist:

  • Vermeiden Sie es, Homebrew für frühere Versionen zu verwenden, die durch die Formel Python oder Python angegeben sind.
  • Versuchen Sie nicht, Python zu kompilieren

Lösung:

  1. Laden Sie das macOS 64-Bit-Installationsprogramm oder macOS 64-Bit/32-Bit-Installationsprogramm herunter: https://www.python.org/downloads/release/) python-365 /
  2. Im vorherigen Schritt wird heruntergeladen Python 3.6.5 , wenn Sie zum Beispiel herunterladen möchten Python 3.4.4 , ersetzen in der URL oben Python-365 von Python-344
  3. Download Klicken Sie auf die Datei, die Sie heruntergeladen haben. Ein GUI-Installationsprogramm wird geöffnet
  4. Wenn Sie python-365 heruntergeladen haben, geben Sie nach der Installation zum Starten dieser Python-Version Ihr Terminal python365 ein was für pip, es wird pip365 sein

p.s: Sie müssen Ihre andere Version von Python auf Ihrem System nicht deinstallieren.


Bearbeiten:


Ich habe eine viel viel bessere Lösung gefunden, die unter MacOSX, Windows, Linux usw. funktioniert.

  1. Es spielt keine Rolle, ob Sie bereits python installiert haben oder nicht.
  2. Download Anaconda
  3. Nach der Installation geben Sie im Terminal Folgendes ein: conda init
  4. Erstellen Sie im Terminal eine virtuelle Umgebung mit any python Version, zum Beispiel 3.4.4: conda create -n [NameOfYour VirtualEnvironment] python=3.4.4
  5. Anschließend können Sie im Terminal alle virtuellen Umgebungen überprüfen, die Sie mit dem folgenden Befehl erstellt haben: conda info --envs
  6. Aktivieren Sie dann im Terminal die virtuelle Umgebung Ihrer Wahl mit: conda activate [The name of your virtual environment that was shown with the command at step 5]
3
vincedjango

Um dies mit homebrew zu lösen, können Sie homebrew-core vorübergehend zurückdatieren und die Variable HOMEBREW_NO_AUTO_UPDATE so einstellen, dass sie an ihrem Platz bleibt:

cd `brew --repo homebrew/core`
git checkout f2a764ef944b1080be64bd88dca9a1d80130c558
export HOMEBREW_NO_AUTO_UPDATE=1
brew install python

Ich empfehle keine dauerhafte Backdatierung des Homebrew-Kerns, da Sie Sicherheitspatches verpassen, aber dies ist zu Testzwecken nützlich.

Sie können auch alte Versionen von Homebrew-Formeln mit dem Befehl brew extract in Ihr eigenes Tap (tap_owner/tap_name) extrahieren:

brew extract python tap_owner/tap_name --version=3.6.5
0
Steven Peters