2017-07-20 2 views
0

Auf meinem MacOS-Computer habe ich Python mit Homebrew in/usr/local/bin installiert. In einem neu eröffneten Terminal habe ichWarum ist meine Python-Datei nicht standardmäßig auf/usr/local/bin gesetzt?

$ echo $PATH | sed 's/:/\n/g' 
/usr/local/mysql/bin 
/usr/local/bin 
/Users/qazwsx/.local/bin 
/Library/TeX/texbin 
/Applications/Xcode.app/Contents/Developer/usr/bin 
/Users/qazwsx/bin 
/usr/bin 
/bin 
/usr/sbin 
/sbin 
/usr/local/sbin 

Wie Sie/usr/local sehen/bin erscheint vor/usr/bin. Aber irgendwie findet Python den Standard! Warum?

$ which python 
/usr/bin/python 
+0

Gibt 'echo $ PATH | sed 's /:/\ n/g'' funktioniert wirklich auf MacOS? Weil das bei mir überhaupt nicht funktioniert. –

+0

Machst du die notwendigen Anpassungen und den PATH in deinem bash_profile? Hast du es nach deinem Abschluss gekauft? –

+0

Was zeigt '$ ls -l/usr/local/bin/python'? Wie wäre es mit $ python? –

Antwort

-2

Eine Umgehung wäre das alte Python umzubenennen und einen Symlink zu Ihrer Version zu erstellen.

mv /usr/bin/python /usr/bin/python.0 
ln -s /usr/local/bin/python /usr/bin/python 

Warum es nicht säumig ist, nicht sicher. Es könnte eine Reihe von Dingen sein. Vielleicht gibt es einen Symlink zu Python in einem anderen Verzeichnis in der Liste, der which Befehl kann einen anderen Pfad verwenden, oder Sie rufen ihn aus einer anderen Shell-Umgebung mit einer anderen Pfadeinstellung ?

+0

Beginnend in El Capitan (OS X v10.11), [Systemintegritätsschutz] (https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-a-capitan-really) verbietet Änderungen in/usr/bin (und einer Reihe anderer Systemverzeichnisse), auch als root. Und selbst in früheren Versionen war das Ändern von Dingen in/usr/bin eine schlechte Idee - zum Beispiel gibt es viele Systemskripte in Python geschrieben, und wenn Sie in einer anderen Version (speziell Version 3) tauschen, können einige von ihnen brechen . Und zufällige Systemkomponenten aufhören zu arbeiten ist nicht gut. –

+0

Ein weiteres Beispiel von Apple versucht, alles in der Umgebung zu kontrollieren :(selbst wenn er das Betriebssystem, das sie verwenden, sie aus der Open-Source-Community geschnappt. –

2

/usr/local/bin/python ist wahrscheinlich nicht vorhanden. Ich habe festgestellt, dass es auf meinen MacOS-Computern nach dem Upgrade von Homebrew nicht mehr /usr/local/bin/python gibt. Wenn ich Python mit brew reinstall python neu installiere, warnte es davor, /usr/local/opt/python/libexec/bin/ zu $PATH hinzuzufügen. Nach der Neuinstallation gab es zwar eine /usr/local/opt/python/libexec/bin/python aber keine /usr/local/bin/python mehr. Es gibt stattdessen /usr/local/bin/python2 und /usr/local/bin/python3.

Verwandte Themen