Entfernen und Neuinstallieren von Python auf dem Mac – Kann ich diesen alten Referenzen vertrauen?

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, also schlagen alle meine python3-Versuche fehl usw.

Ich recherchiere, wie ich alle Versionen sicher entfernen und dann nach einer Neuinstallation (Homebrew?) suchen kann, aber ich bin etwas nervös.

Ich habe einige hervorragende Links gefunden:

Natürlich rührt man nichts im Root- /systemVerzeichnis an, und im Grunde wird alles andere gelöscht. Was mich nervös macht, ist, dass diese Links ziemlich altbacken sind. (sechs Jahre! +) Ich bin mir nicht sicher, ob ich ihnen wirklich vertraue oder nicht.

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

Antworten (3)

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

  1. which python---> /Library/Frameworks/Python.framework/Versions/2.7/bin/pythonLöschen Sie das gesamte Python.framework-Verzeichnis aus /Library/Frameworks.
  2. which python3---> /usr/local/bin/python3Löschen Sie das gesamte python3-Verzeichnis.
  3. Ich war etwas nervös wegen der Symlinks. Ich habe zunächst diejenigen umbenannt, die mir offensichtlich Probleme bereiten würden. Es stellt sich heraus, dass das 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 perfekt 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 um es klar zu sagen. Die Antwort auf die Ausgangsfrage lautet

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

@nohillside danke, aber … du hättest die kürzliche Eingabe von XXXX hier, die deine Bearbeitung veranlasst hat, leicht als Kommentar hier bestätigen können. Scheint ein seltsamer Zuordnungsfehler 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.
Der beste Weg, um eine Zuordnung 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 sich dafür entscheiden, Verbesserungskommentare als Antworten zu posten, bearbeite ich sie normalerweise einfach in den entsprechenden Beitrag.
Homebrew-Versionen von Python enthalten keine Unterstützung für Xcode oder Tools wie Meißel, die ich zuletzt überprüft habe. Daher wird dies normalerweise nicht empfohlen.
Nur um zu erwähnen, /System/Library/Frameworks/Python.framework/darf niemals entfernt werden, Link docs.python.org/3/using/mac.html
neue Version hat Brew Cleanup
Python 3 ist nicht abwärtskompatibel. Sie werden alle auf Python 2 basierende Software beschädigen, indem Sie sie löschen. Warum nicht einfach beide Versionen behalten und Ihre Shell umleiten, um die neueste Version zu verwenden?

Meine Python-Version war 3.6, ich wollte auf 3.7 upgraden (falls Sie ähnliche Anforderungen haben). Ich verwende macOS Version 10.12.6 und das einfache Deinstallieren und Neuinstallieren 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.
Das hat bei mir gut funktioniert. Ich musste den Pfad anpassen, ipythonindem ich das Startskript manuell bearbeitete - um auf die Brew-Version von Python zu verweisen

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

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

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

War das JA, diesen beiden Referenzen zu vertrauen, oder NEIN, ihnen nicht zu vertrauen? Diese Referenzen scheinen von hoher Qualität, gut begründet und ziemlich detailliert erklärt zu sein.
@zipzit Du kannst ihnen vertrauen, aber sie werden nicht funktionieren – das sind zwei verschiedene Dinge. Der Inhalt ist vertrauenswürdig; Probieren Sie es auf einer neueren Version von macOS aus und es wird keinen Schaden anrichten, aber es wird aus den in dieser Antwort angegebenen Gründen auch nicht funktionieren. Ich empfehle dringend, SIP nicht zu deaktivieren, nur um die Python-Installation Ihres Systems zu entfernen (weshalb ich keine Anweisungen verlinkt habe), da dies nicht die eigentliche Ursache Ihres Problems ist und nicht zur Lösung beiträgt und möglicherweise weitere Probleme verursacht.
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. Es gibt Dinge zu löschen in 1) Python 3.3-Ordner in Ihrem Anwendungsordner. 2) /Library/Frameworks/Python.framework 3) ~ 20 Symlinks in /usr/local/bin. 4) Referenzen im Shell-Pfad (falls vorhanden). Ich würde nicht glauben, dass einer von denen den Schutz trifft, von dem Sie sprechen. Was vermisse ich?
@zipzit Vor einiger Zeit wurde Python von /Library nach /System/Library verschoben, sodass Sie /System berühren werden, um zu versuchen, die Systeminstallation zu entfernen. Das System-Python-Framework befindet sich in /System/Library/Frameworks/Python.framework, nicht in /Library.
$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 aktuell unterSystem/Library/Frameworks/Python.framework/Versions/...
@zipzit Etwas anderes hat es dann in /Library installiert, ich habe überhaupt kein Python-Framework in /Library