Entfernen und erneutes Installieren von Python auf einem Mac - Kann ich diesen alten Referenzen vertrauen?

36

Ich bin neu auf dem Mac, und anscheinend habe ich eine Art Fehler gemacht. Ich habe Python über Tutorials gelernt und zwischen Homebrew, Pip und XCode sind meine Versionen irgendwie alle gemischt. Pip3 zeigt auf python2, so dass alle meine python3-Versuche fehlschlagen, etc ...

Ich recherchiere, wie ich alle Versionen sicher entfernen und dann nach einer sauberen Installation (Homebrew?) Suchen kann, aber ich bin ein bisschen nervös.

Ich habe einige ausgezeichnete Links gefunden:

Offensichtlich berührt man nichts im Stammverzeichnis /systemund im Grunde wird alles andere gelöscht. Was mich nervös macht, ist, dass diese Links ziemlich alt sind. (6 Jahre! +) Ich bin mir nicht sicher, ob ich ihnen wirklich vertraue oder nicht.

War in letzter Zeit jemand hier? Kann ich den oben verlinkten Beiträgen vertrauen? Wie räume ich dieses Python-Versions-Chaos auf? Hinweis: Ich verwende MacOS Sierra (10.12.5)

zipzit
quelle

Antworten:

34

Also habe ich alle Python-Installationen entfernt und die Dinge über Homebrew neu installiert.

  1. which python---> /Library/Frameworks/Python.framework/Versions/2.7/bin/python Löschen Sie das gesamte Python.framework-Verzeichnis von /Library/Frameworks.
  2. which python3---> /usr/local/bin/python3 Löschen Sie das gesamte python3-Verzeichnis.
  3. Ich war etwas nervös wegen der Symlinks. Anfangs habe ich diejenigen umbenannt, die mir offensichtlich Ärger bereiten würden. Es stellte sich heraus, dass dies unnötig war. Verwenden Sie stattdessen einfach:

    $ brew doctor
    Warning: Broken symlinks were found. Remove them with 'brew prune':
      /usr/local/bin/python-32
      /usr/local/bin/python2-32
      /usr/local/bin/python2.7-32
      /usr/local/bin/python2_DNU
      /usr/local/bin/python_DNU
      /usr/local/bin/pythonw-32
      /usr/local/bin/pythonw2-32
      /usr/local/bin/pythonw2.7-32
    

    Also, brew prune(oder brew cleanup --prunein neueren Versionen von Homebrew) hat einwandfrei funktioniert. Alle oben genannten Symlinks wurden entfernt.

  4. Installieren Sie Python und Python3 über Homebrew neu. Alles erledigt.

Zu keinem Zeitpunkt habe ich die Python-Installation im /SystemOrdner berührt .

Oh, und klar zu sein. Die Antwort auf die ursprüngliche Frage lautet

Ja, Sie können den alten Referenzen vertrauen, wie sie geschrieben wurden! Diese Anleitung ist immer noch gültig.

zipzit
quelle
@nohillside thx aber .. du hättest leicht die jüngsten Eingaben von XXXX hier bestätigen können, die deine Bearbeitung als Kommentar hier veranlasst haben. Scheint ein merkwürdiger Zuschreibungsfehler für Sie zu sein. Dürfen Neulinge keine Kommentare posten? Und jetzt kann ich den Submit-Namen nicht sehen, um es selbst zu tun.
Reißverschluss
Der beste Weg, um Zuschreibungen zu erhalten, besteht darin, einen Beitrag tatsächlich zu bearbeiten, falls eine Bearbeitung erforderlich ist, was alle Benutzer (auch anonyme) tun können. Wenn Benutzer Verbesserungskommentare als Antworten veröffentlichen möchten, bearbeite ich sie normalerweise nur in den entsprechenden Beitrag.
Nohillside
Homebrew-Versionen von Python bieten keine Unterstützung für Xcode oder Tools wie Chisel, die ich zuletzt überprüft habe. Daher wird dies normalerweise nicht empfohlen.
Nyteshade
Nur um zu erwähnen, /System/Library/Frameworks/Python.framework/darf nicht entfernt werden, link docs.python.org/3/using/mac.html
ivan.proskuryakov
Neue Version hat Bereinigung
GraphicalDot
5

Meine Python-Version war 3.6, ich wollte auf 3.7 upgraden (falls Sie ähnliche Anforderungen haben). Ich benutze macOS Version 10.12.6 und die einfache Deinstallation und Neuinstallation hat bei mir funktioniert:

brew uninstall --ignore-dependencies python3

Dann:

brew install python3

und fertig:

python3
Python 3.7.2 (default, Jan 13 2019, 12:51:54) 
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Kaulquappe
quelle
Das hat bei mir gut funktioniert. Ich musste den ipythonPfad anpassen, indem ich das
Startskript
0

Systemdateien sind durch den Systemintegritätsschutz geschützt. Sie können diesen Anweisungen nicht in rm -rfzufälligen Ordnern in / System folgen, ohne SIP zuerst zu deaktivieren.

Da die Dateien jedoch geschützt sind, wissen Sie, dass die Dateien nicht geändert wurden. Ihr 'Versions-Durcheinander' wäre auf Ihr Shell-Setup zurückzuführen und würde durch das Ändern von Systemdateien sowieso nicht geändert. Sie sollten diese Dateien, die unter macOS garantiert existieren, nicht berühren.

Homebrew wird separat in / usr / local / Cellar installiert. Verwenden Sie Homebrew, um Ihre Python-Installation zu verwalten und die Systeminstallation vollständig zu ignorieren.

grg
quelle
War das JA, okay, um diesen beiden Referenzen zu vertrauen, oder NEIN, trauen Sie ihnen nicht? Diese Referenzen scheinen von hoher Qualität, gut begründet und ziemlich ausführlich erklärt zu sein.
zipzit
1
@zipzit Du kannst ihnen vertrauen, aber sie werden nicht funktionieren - das sind zwei verschiedene Dinge. Der Inhalt ist vertrauenswürdig; Probieren Sie es mit einer neueren Version von macOS aus und es wird keinen Schaden anrichten, aber aus den in dieser Antwort angegebenen Gründen wird es auch nicht funktionieren. Ich empfehle dringend, SIP nicht zu deaktivieren, um die Python-Installation Ihres Systems zu entfernen (aus diesem Grund habe ich keine Verknüpfung zu Anweisungen erstellt), da dies nicht die eigentliche Ursache für Ihr Problem ist und keine Lösung für Probleme darstellt, die möglicherweise zu weiteren Problemen führen können.
grg
Deine Antwort ergibt für mich keinen Sinn. Keine der oben verlinkten Qualitätsantworten berührt irgendetwas in /system. None = Not One, Zero, Zip, Nada. In 1) Python 3.3-Ordner in Ihrem Anwendungsordner gibt es Dinge zu löschen. 2) /Library/Frameworks/Python.framework 3) ~ 20 Symlinks in / usr / local / bin. 4) Referenzen im Shell-Pfad (falls vorhanden). Ich würde nicht denken, dass einer von denen den Schutz trifft, von dem Sie sprechen. Was vermisse ich?
zipzit
@zipzit Vor einiger Zeit wurde Python von / Library nach / System / Library verschoben, sodass Sie / System berühren, um die Systeminstallation zu entfernen. Das System-Python-Framework befindet sich in /System/Library/Frameworks/Python.framework, nicht in / Library.
grg
$which python /Library/Frameworks/Python.framework/Versions/2.7/bin/python $ which python3 /usr/local/bin/python3plus Python 2.3, 2.4, 2.5, 2.7 und aktuelle befindet sich beiSystem/Library/Frameworks/Python.framework/Versions/...
zipzit