2015-06-15 9 views
7

Ich suche nach einer Möglichkeit, alle Versionen von Python unter OS X 10.10 sauber zu deinstallieren, mit Ausnahme der Standardversion, die mit dem Mac folgte. Wie gehe ich vor?Wie können alle Python-Versionen deinstalliert und die Standard-Systemversion von OS X 10.10 verwendet werden?

Derzeit habe ich ein seltsames Verhalten. Wenn which -a python Eingabe erhalte ich folgende Ausgabe:

/Users/harisfawad/anaconda/bin/python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
/usr/local/bin/python 
/usr/bin/python 

Warum zeigt sich hier nicht die Standard-Version von Python in /System/Library/.../? Ich kann diese Version im Finder finden, daher weiß ich, dass sie nicht gelöscht wird.

Außerdem gibt echo $PYTHONPATH eine leere Zeile zurück.

Kann ich einfach alle diese Ordner löschen und erwarten, dass die Standardversion korrekt ausgeführt wird?

Ich habe eine ähnliche Anfrage hier http://bugs.python.org/issue7107 gelesen, aber ich bin mir nicht sicher, ob dies immer noch für Python-Versionen 2.7/3.4 gilt.

Das ist auch eine ähnliche Frage How to uninstall Python 2.7 on a Mac OS X 10.6.4? Aber noch einmal, ich möchte nicht unvorsichtig sein und die Deinstallation durchführen, bevor Sie sicherstellen, dass die vom System bereitgestellte Version funktioniert.

UPDATE: Wenn brew doctor läuft ich dieses Warning: "config" scripts exist outside your system or Homebrew directories. Und es geht auf die Auflistung der "config" Dateien in /.../anaconda/bin und in /Library/.../bin.

UPDATE2: Ich habe wieder auf die Standardversion von Python erfolgreich gegangen, die in OS X. Alle oben genannten Versionen von Python enthalten war, wo außer /usr/bin/python in den Papierkorb bewegt. Danke, @rhashimoto und @PadraicCunningham!

+0

Sie können jede Version, die Sie installiert haben, ohne Probleme entfernen, müssen Sie möglicherweise pip neu installieren, um mit Ihrem System Python zu arbeiten, nur sicherstellen, dass Sie nichts zu Ihrem System Python tun –

+0

Ok. Aber gibt es einen Grund, warum der Speicherort des System Python nicht zusammen mit den anderen installierten Versionen angezeigt wird? – harisf

+0

Was gibt 'ls -l/usr/bin/python' aus? –

Antwort

3

Die Datei /usr/bin/python (und /usr/bin/pythonw, die eine feste Verbindung auf die gleiche Datei ist) ist eigentlich ein Launcher-Programm, das die Standard-Version von Python aus /System/Library/Frameworks/Python.framework/Versions aufruft. Sie können select the version (2.6 und 2.7 in Yosemite) der Launcher ruft entweder defaults Befehl oder die VERSIONER_PYTHON_VERSION Umgebungsvariable.

Wenn Sie eine bestimmte Version manuell ausführen möchten, können Sie /usr/bin/python2.6 oder /usr/bin/python2.7 aufrufen, die symbolische Links in /System/Library/Frameworks/Python.framework/Versions sind.

Sie sollten alle anderen Python-Implementierungen entfernen, die Sie von Ihrem Pfad auflisten, einschließlich /Library/Frameworks/Python.framework/Versions/2.7/bin/python (nicht sicher, wie Sie das bekommen haben). Es wäre dennoch ratsam, sie irgendwo zu verschieben (z. B. in Ihren Papierkorb), um Ihre Änderung zu testen, bevor Sie sie endgültig löschen.

+0

In Ordnung, also habe ich die obigen Versionen von Python einfach in den Papierkorb verschoben. Nun gibt 'which -a python' nur'/usr/bin/python' zurück, was ein Hinweis darauf ist, dass alles auf den Standardwert zurückgesetzt wurde.Danke für die Erklärung, dass dies eine symbolische Verbindung zur Python-Version unter '/ System/...' ist. Die Eingabe von 'python' startet nun die Standardversion auf darwin. Aber "echo $ PYTHONPATH" gibt immer noch ein Leerzeichen zurück. Irgendeine Idee, was das bedeutet? – harisf

+0

['PYTHONPATH'] (https://docs.python.org/2/using/cmdline.html#envvar-PYTHONPATH) erweitert den Standardsuchpfad des Moduls. Sie können es einstellen, was Sie wollen (wenn Sie es nicht einstellen, dann ist es leer). Wenn Sie sehen möchten, was der aktuelle Pfad ist, können Sie auf ['sys.path'] (http://stackoverflow.com/questions/5751292/how-to-get-current-import-paths-in-python) zugreifen. . – rhashimoto

+0

Beachten Sie, dass ich nicht gesagt habe, dass '/ usr/bin/python' eine symbolische Verbindung ist. Es ist ein kleines Launcher-Programm, das prüft, was die gewählte Standardversion ist und ruft dann diese Version auf. – rhashimoto

Verwandte Themen