Supprimer et réinstaller Python sur Mac - Puis-je faire confiance à ces anciennes références?

36

Je suis nouveau sur le mac et apparemment j'ai fait une sorte d'erreur. J'ai appris le python, via des tutoriels, et entre Homebrew, Pip et XCode, mes versions sont toutes mélangées. Pip3 pointe vers python2, donc tous mes essais python3 échouent, etc ...

Je recherche comment supprimer toutes les versions en toute sécurité, puis viser une installation propre (homebrew?) Mais je suis un peu nerveux.

J'ai trouvé d'excellents liens:

Clairement, on ne touche à rien dans le /systemrépertoire racine , et fondamentalement tout le reste est supprimé. Ce qui me rend nerveux, c'est que ces liens sont assez anciens. (six ans! +) Je ne sais pas si je leur fais vraiment confiance ou non.

Quelqu'un est venu récemment? Puis-je faire confiance aux publications liées ci-dessus? Comment nettoyer ce gâchis de version python? Remarque: j'utilise MacOS Sierra (10.12.5)

zipzit
la source

Réponses:

34

J'ai donc fini par supprimer toutes les installations de python et réinstaller les choses via Homebrew.

  1. which python---> /Library/Frameworks/Python.framework/Versions/2.7/bin/python Supprimez l'intégralité du répertoire Python.framework de /Library/Frameworks.
  2. which python3---> /usr/local/bin/python3 Supprimez l'intégralité du répertoire python3.
  3. J'étais un peu nerveux à propos des liens symboliques. J'ai d'abord renommé ceux qui allaient évidemment me causer des ennuis. Il s'avère que cela n'était pas nécessaire. À la place, utilisez simplement:

    $ 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

    Donc, brew prune(ou brew cleanup --prunedans les versions plus récentes de Homebrew) a parfaitement fonctionné. Il a supprimé tous les liens symboliques ci-dessus.

  4. Réinstallez python et python3 via homebrew. Terminé.

À aucun moment je n'ai touché à l'installation de python située dans le /Systemdossier.

Oh, et pour être clair. La réponse à la question d'origine est

Oui, vous pouvez faire confiance aux anciennes références, telles qu'elles sont écrites! Ces indications sont toujours valables.

zipzit
la source
@nohillside thx mais .. vous auriez pu facilement reconnaître la récente entrée de XXXX ici qui a incité votre modification comme commentaire ici. Semble une étrange absence d'attribution pour vous. Newby n'est-il pas autorisé à publier des commentaires? Et maintenant, je ne vois plus le nom de soumission pour le faire moi-même.
zipzit
La meilleure façon d'obtenir une attribution est de réellement éditer un article au cas où l'édition serait nécessaire, ce que tous les utilisateurs (même anonymes) peuvent faire. Si les utilisateurs choisissent de publier des commentaires d'amélioration en tant que réponses, je les modifie généralement dans la publication associée.
nohillside
Les versions Homebrew de python n'incluront pas la prise en charge de Xcode ou d'outils comme le burin le dernier que j'ai vérifié. Ce n'est donc généralement pas recommandé.
nyteshade
Juste pour mentionner /System/Library/Frameworks/Python.framework/ne doit jamais être supprimé, lien docs.python.org/3/using/mac.html
ivan.proskuryakov
nouvelle version a nettoyage de brassage
GraphicalDot
5

Ma version Python était 3.6, je voulais passer à 3.7 (au cas où vous auriez des exigences similaires). J'utilise macOS version 10.12.6 et désinstaller et réinstaller simplement a fonctionné pour moi:

brew uninstall --ignore-dependencies python3

Ensuite:

brew install python3

et fait:

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.
Têtard
la source
Cela a bien fonctionné pour moi. J'ai eu besoin d'ajuster le ipythonchemin en éditant manuellement le script de lancement - pour pointer vers la version brew de python
javadba
0

Les fichiers système sont protégés par System Integrity Protection. Vous ne pourrez pas suivre ces instructions dans rm -rfdes dossiers aléatoires dans / System sans désactiver SIP au préalable.

Cependant, comme les fichiers sont protégés, vous savez qu'ils n'ont pas été modifiés. Votre `` désordre de version '' serait dû à la configuration de votre shell et ne serait pas modifié en modifiant les fichiers système de toute façon. Vous ne devez pas toucher à ces fichiers dont l'existence est garantie sous macOS.

Homebrew s'installe séparément dans / usr / local / Cellar. Utilisez Homebrew pour gérer votre installation Python et ignorez complètement l'installation du système.

grg
la source
Était-ce OUI, d'accord pour faire confiance à ces deux références, ou NON, ne pas leur faire confiance? Ces références semblent de haute qualité, bien motivées et expliquées assez en détail.
zipzit
1
@zipzit Vous pouvez leur faire confiance, mais ils ne fonctionneront pas - c'est deux choses distinctes. Le contenu est digne de confiance; essayez-le sur une version récente de macOS et cela ne fera aucun mal, mais cela ne fonctionnera pas non plus, pour les raisons données dans cette réponse. Je recommande fortement de ne pas désactiver SIP simplement pour supprimer l'installation de votre système Python (c'est pourquoi je ne suis pas lié aux instructions) car ce n'est pas la cause réelle de votre problème et n'aidera à rien, ce qui pourrait potentiellement causer plus de problèmes dans le processus.
grg
Votre réponse n'a pas de sens pour moi. Aucune des réponses de qualité liées ci-dessus ne touche à quoi que ce soit /system. Aucun = pas un, zéro, Zip, Nada. Il y a des choses à supprimer dans 1) le dossier Python 3.3 dans votre dossier Applications. 2) /Library/Frameworks/Python.framework 3) ~ 20 liens symboliques dans / usr / local / bin. 4) références dans le chemin du shell (s'il existe). Je ne pense pas que l'un d'entre eux atteindra les protections dont vous parlez. Qu'est-ce que je rate?
zipzit
@zipzit Il y a un certain temps, Python a été déplacé de / Library vers / System / Library, vous allez donc toucher / System pour tenter de supprimer l'installation du système. Le framework système Python se trouve dans /System/Library/Frameworks/Python.framework, pas / 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 et courant situé àSystem/Library/Frameworks/Python.framework/Versions/...
zipzit