2014-11-13 7 views
9

Ich glaube, ich habe Python zuvor über Homebrew installiert. Es war keine gute Idee, aber ich tat:Wie kann ich Python auf OS X Yosemite wiederherstellen, nachdem ich etwas gelöscht habe?

$ which python 
/Library/Frameworks/Python.framework/Versions/2.7/bin/python 
$ sudo rm -R /Library/Frameworks/Python.framework/Versions/2.7/bin/python 

.. und dann das Terminal sagte mir ...

$ which python 
/usr/local/bin/python 

Aber wenn ich Python laufen wieder

$ python 
-bash: /Library/Frameworks/Python.framework/Versions/2.7/bin/python: No such file or directory 

Also ich dies tat:

export PATH=/usr/local/bin:/usr/local/sbin:$PATH 

Jetzt python läuft o n mein Terminal, aber ich frage mich, ob es besser wäre, etwas zurück zu stellen, wo ich es löschte, und wie ich "wiederherstellen" konnte, aber Python war, bevor ich damit durchhielt?

Danke!

+1

Warum haben Sie Python entfernt? Was hast du versucht zu tun? –

+0

Welche Version haben Sie über Homebrew installiert? Kannst du etwas mit 'python3' ausführen? Geben Sie 'python3' in Ihrem Terminal ein, werden Sie zum interaktiven python3-Interpreter weitergeleitet? –

+0

Ich könnte python3 – ngc

Antwort

24

Sie haben hier eine Vielzahl von Problemen.

Lasst sich mit dieser beginnen:

/Library/Frameworks/Python/2.7 ist weder der Apple Python noch der Homebrew Python. Sie haben anscheinend eine dritte Python installiert, vielleicht die von den offiziellen python.org-Binär-Installern. Das Entfernen dieser Option hat keinen Einfluss auf die Homebrew-Version.

/usr/local/bin/python ist auch nicht der Apple Python. Es kann ein Symlink zu Ihrem dritten Python oder dem Homebrew Python sein, aber es ist nicht von Apple.

Hier ist, wo jeder Python geht:

  • Apples Python in /System/Library/Frameworks/Python/2.7 ist. Es enthält auch verschiedene ausführbare Wrapper-Dateien in /usr/bin, einschließlich /usr/bin/python, die auf das /System Framework verweisen. Jedes zusätzliche Zeug, das Sie mit diesem Python installieren (z. B. über easy_install oder pip), das ausführbare Dateien oder Skripts enthält, wird in /usr/local/bin, nicht /usr/bin, gehen, aber Apple vorinstallierten Sachen nie.

  • Die meisten binären Installationsprogramme von Drittanbietern werden in installiert. Verschiedene Versionen können optional das Verzeichnis bin des Frameworks zu Ihrem Pfad hinzufügen oder die Binärdateien in /usr/local/bin symbolisch verknüpfen.

  • Homebrew installiert zu irgendwo wie /usr/local/Cellar/python/2.7.8, dann symbolisiert Symlink verschiedene ausführbare Dateien und Skripte in /usr/local/bin.

Also, die Tatsache, dass Sie versuchen, indem Sie sicherstellen, /usr/local/bin zum Apple Python zurück zu bekommen ist auf dem Weg bereits in der falschen Richtung.


Inzwischen nie manuell etwas von Homebrew installiert löschen, es sei denn brew doctor Ihnen sagt. Verwenden Sie einfach brew uninstall python -oder, wenn Sie es vorübergehend aus dem Weg verschieben möchten, mit der Option, es später wiederherzustellen, brew unlink python.


schließlich auch nach dem PATH zu ändern, kann die Schale die beste Lage hat zwischengespeichert python zu finden, also entweder lesen Sie auf dem hash Befehl oder, wenn Sie wollen nicht mehr über bash lernen, einfach stelle sicher, dass du eine neue Shell öffnest (zB indem du eine neue Registerkarte in Terminal.app öffnest).


Wie auch immer, wie kommen Sie dahin zurück, wo Sie waren?

Sie müssen extra Pythons sauber deinstallieren. Ich habe bereits erklärt, wie man das mit dem obigen Homebrew macht. Für den dritten hast du das meiste getan, aber anscheinend gibt es noch Dinge in /usr/local/bin. Wenn sie alle symbolische Links haben, wie es am wahrscheinlichsten erscheint, können Sie sie ziemlich einfach z. B. mit ls -l /usr/local/bin |grep /Library/Frameworks/Python.framework |grep -v /System finden.

Danach getan, nur eine neue Shell, und which python sollte Ihnen /usr/bin/python sagen, und alles wird wieder glücklich sein.

+5

Also, was jemand _did_ das '/ System/Library/Frameworks/Python'-Verzeichnis löschen und wollte das' Quartz' Zeug zurück bekommen? Ich bitte um einen, ähm, Freund. – DuckPuncher

Verwandte Themen