Wie (und sollte ich) einen Pfad zu vom Benutzer installiertem Python vor das vom System installierte Python setzen?

Ich habe eine separate Installation von Python 3.*, aber der erste Python-Pfad in meiner $PATHVariablen ist der Pfad zum vom System installierten Python. Soll es so sein?

Ich habe den Pfad zum vom Benutzer installierten Python mit https://www.architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.Uydjga1dXDg hinzugefügt , und es wurde am Ende geknallt $PATH.

Verstehe ich richtig, dass in der aktuellen Situation, wenn ich pip, brewetc. auf python3 von bash aus ausführe, die Änderungen auf systeminstalliertes Python angewendet werden?

Die Lösung, die ich bisher habe, besteht darin, export PATH=/usr/local/bin:/usr/local/sbin:$PATHjedes Mal ausgeführt zu werden, wenn ich Python installieren oder aktualisieren möchte, aber es ist nicht ideal.

pyenvNB: Ich habe mich für die von @bermudalocket vorgeschlagene Lösung entschieden . Dieses pyenv- Tutorial war sehr nützlich.

Geben Sie hier die Bildbeschreibung ein

Antworten (2)

Sie können dies erreichen, indem Sie hinzufügen

export PATH="/path/to/python:"$PATH

zu Ihnen ~/.zshrc(oder ~/.bash_profilewenn Sie nicht auf Catalina sind).

Ich möchte eine Alternative vorschlagen und vorschlagen pyenv, die über Homebrew erhältlich ist. Sie können eine bestimmte Python-Version als „global“ (dh überall standardmäßig) und/oder „lokal“ (dh diese Version nur in einem bestimmten Verzeichnis verwenden) festlegen.

Z.B:

brew install pyenv
pyenv global 2.7.16
cd ~/myProjects/MyProject
pyenv local 3.7.6

Wenn Sie Python darin verwenden würden, ~/myProjects/MyProjectwird standardmäßig 3.7.6, und überall sonst 2.7.16:

cd ~/some/other/directory
python --version
>> Python 2.7.16

cd ~/myProjects/MyProject
python --version
>> Python 3.7.6

https://github.com/pyenv/pyenv#homebrew-on-macos

Danke schön! Würden Sie wissen, ob die Einstellung global oder lokal (in einigen Verzeichnissen?) Die Funktionsweise von Python des Systems beeinträchtigen würde?
Das ist das Schöne daran. Wenn Sie laufen pyenv versions, um eine Liste der verfügbaren Versionen anzuzeigen, ist eine system. Das bedeutet, dass Sie laufen können <pyenv global/local> system. Wenn Sie sich dann in einem Verzeichnis befinden, das die Systemversion verwendet, erfolgen alle Interaktionen mit Python mit dem System-Python.
Bitte fügen Sie den Antworten Benutzerhandbücher hinzu, wenn Sie keine vollständigen Anweisungen geben sollten. @bermudalocket
@ankii könnten Sie mich bitte zu dem Abschnitt der Hilfe verweisen, in dem diese Anforderung angegeben ist? Ich sehe hier nichts davon . Danke.
Ja, es gibt keine feste Definition der besten Antwort, aber versetzen Sie sich in die Lage von OP und sehen Sie, ob die Antwort in sich vollständig ist? Wäre es in der Lage, zukünftigen Problemen zu begegnen, auf die sie stoßen könnten? Nein. Sie haben eine andere Frage gestellt, die in den Dokumenten beantwortet wird. meta.stackoverflow.com/questions/393571 meta.stackoverflow.com/a/260744/10063119 Falls Sie sich fragen, warum die Dinge von SO hier anwendbar sind, ist apple.meta.stackexchange.com/a/2509/313842 sehr passend zu. Beachten Sie meine Verwendung von ".. Putting Complete Set of Instructions .. "

Ich habe Python 3.8 für macOS mit dem Installationsprogramm von python.org installiert, nicht Homebrew, das auch auf meinem Mac installiert ist, aber selten verwendet wird. Ich denke, die ersten drei Zeilen unten zu meinem ~/.bash_profile wurden automatisch vom Installationsprogramm von python.org hinzugefügt.

Mit diesen scheinen alle Änderungen, die ich mit mache, pip3nur 3.8 zu betreffen, während die über 2.7 vorgenommenen pipanscheinend nur 2.7 betreffen (von dem ich glaube, dass es mit macOS installiert wird). Da ich Homebrew bei der Installation von Python 3.8 (oder 2.7) nicht verwendet habe, gehe ich davon aus, dass es in meinem Fall für keine der Python-Versionen relevant ist. Hoffe, diese helfen.

# Setting PATH for Python 3.8
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"
export PATH

# Setting PATH for Python 2.7
# I believe the two lines below were already in the file before the above were added
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH