Im Allgemeinen verwende ich Python 2.7, installierte jedoch kürzlich Python 3.5 mit Miniconda unter Mac OS X. Für diese beiden Versionen von Python wurden unterschiedliche Bibliotheken installiert. Die Eingabe eines der Schlüsselwörter 'python' oder 'python3' in terminal ruft jetzt Python 3.5 auf, und 'python2' gibt '-bash: python2: Befehl nicht gefunden' zurück. Wie kann ich sie jetzt spezifisch mit den Aliasnamen 'python2' und 'python3' aufrufen?
Ich verwende derzeit OS X El Capitan.
IMHO, die beste Möglichkeit, zwei verschiedene Python-Versionen unter macOS zu verwenden, ist homebrew
. Führen Sie nach der Installation von homebrew unter macOS die folgenden Befehle auf Ihrem Terminal aus.
brew install [email protected]
brew install python
Jetzt können Sie Python 2.7 ausführen, indem Sie python2
oder Python 3 aufrufen, indem Sie python3
aufrufen. Darüber hinaus können Sie virtualenv
oder pyenv verwenden, um verschiedene Versionen von python
-Umgebungen zu verwalten.
Ich habe miniconda
nie persönlich verwendet, aber aus der Dokumentation sieht aus, als wäre sie pip
und virtualenv
in Kombination ähnlich.
Die Python-Binärdatei von OSX (Version 2) befindet sich unter /usr/bin/python
.
wenn Sie which python
verwenden, wird Ihnen mitgeteilt, wo der Befehl python
aufgelöst wird. In der Regel werden Dritte in /usr/local/bin
(was standardmäßig Vorrang vor /usr/bin
hat) neu definiert. Um dies zu beheben, können Sie entweder /usr/bin/python
direkt ausführen, um 2.x zu verwenden, oder die fehlerhafte Neudefinition finden (wahrscheinlich in /usr/local/bin
oder an anderer Stelle in Ihrer PATH
).
Ich hatte bereits python3 installiert (über miniconda3) und musste nebenbei python2 installieren. In diesem Fall brew install python
wird python2 nicht installieren, daher benötigen Sie brew install [email protected]
.
Alias python2
bezieht sich jetzt auf python2.x von /usr/bin/python
und Alias python3
verweist auf python3.x von /Users/ishandutta2007/miniconda3/bin/python
und Alias python
bezieht sich standardmäßig auf python3.
Um nun python
als Alias für python2 zu verwenden, fügte ich der .bashrc
-Datei Folgendes hinzu
alias python='/usr/bin/python'
.
Um als Standard zu python3 zurückzukehren, entfernen Sie diese Zeile bei Bedarf.
So setzen Sie die Python-Version auf 2.7 zurück, wenn Sie Anaconda3 (Python 3.6) unter MacOS High Sierra 10.13.5 installiert haben
Bearbeiten Sie die Datei .bash_profile in Ihrem Basisverzeichnis.
vi $ HOME/.bash_profile
hash aus der Zeile # export PATH = "/ Users/YOURUSERNAME/anaconda3/bin: $ PATH"
Schließen Sie die Shell wieder. Sie sollten 2.7 sehen, wenn Sie Python ausführen.
Wenn Sie 3.6 möchten, können Sie die anaconda3-Zeile in Ihrem bash-Profil einfach kommentieren.
Der Versuch, die Verknüpfung von Python zu lösen, endet in Mac OSX in Tränen.
Sie werden so etwas
unlink:/usr/bin/python: Vorgang nicht zulässig
Hoffe das hilft jemandem raus !! :) :)
Ähnlich wie bei John Wilkeys Antwort würde ich python2 ausführen, indem ich which python
finde, etwas wie /usr/bin/python
und dann ein alias in .bash_profile
erstellt:
alias python2="/usr/bin/python"
Ich kann jetzt python3 ausführen, indem ich python
und python2 durch Aufruf von python2
aufrufe.
Wenn Sie die Systeminstallation von Apple mit Python 2.7 verwenden möchten, beachten Sie, dass die in PEP 394 festgelegten Namensstandards nicht ganz eingehalten werden.
Sie enthält insbesondere die optionalen Symlinks mit dem Suffix 2.7
, auf die Sie sich nicht verlassen sollen, und nicht die empfohlenen Symlinks mit dem Suffix 2
, auf die Sie sich von () verlassen.
Wenn Sie dies beheben möchten, während Sie sich an Apples Python halten, können Sie eigene Symlinks erstellen:
$ cd <somewhere writable and in your PATH>
$ ln -s /usr/bin/python python2
Oder Aliasnamen in der bash-config:
alias python2 python2.7
Sie können dies auch für Apples 2to3, easy_install usw. tun, wenn Sie sie benötigen.
Sie sollten nicht versuchen, diese symbolischen Links in /usr/bin
einzufügen, und definitiv versuchen Sie nicht, das, was bereits vorhanden ist, umzubenennen oder das Distutils-Setup in etwas PEP-kompatibler zu ändern Diese Dateien sind alle Teil des Betriebssystems und können von anderen Teilen des Betriebssystems verwendet werden. Ihre Änderungen können sogar bei einem geringfügigen Update von 10.13.5 auf 10.13.6 oder etwas überschrieben werden. Lassen Sie sie also in Ruhe und umgehen Sie sie wie oben beschrieben.
Alternativ können Sie:
python2.7
anstelle von python2
in der Befehlszeile und in Ihren Shbangs usw. python
, python3
, python2
usw. spielt keine Rolle, wenn Sie immer die lokale python
der aktivierten Umgebung verwenden.Ich folge der Antwort von @John Wilkey.
Mein Alias python
wurde für die Darstellung von Python2.7 verwendet (befindet sich in /usr/bin
) . Dem Standard-Python_path ist jedoch jetzt /usr/local/bin
für python3
vorangestellt. Wenn ich python
eingab, erhielt ich weder die Python-Version.
Ich habe versucht, in /usr/local/bin
einen Link für python2
zu erstellen:
ln -s /usr/bin/python /usr/local/bin/
Es funktioniert, wenn python
für python2
aufgerufen wird.