Comment désinstaller Python 2.7 sur un Mac OS X 10.6.4?

339

Je veux supprimer complètement Python 2.7 de mon Mac OS X 10.6.4. J'ai réussi à supprimer l'entrée de la PATHvariable en rétablissant mon .bash_profile. Mais je veux également supprimer tous les répertoires, fichiers, liens symboliques et entrées installés par le package d'installation de Python 2.7. J'ai le package d'installation sur http://www.python.org/ . Quels répertoires / fichiers / entrées de fichier de configuration dois-je supprimer? Y a-t-il une liste quelque part?

Jan Deinhard
la source

Réponses:

706

Ne tentez pas d'enlever tout système fourni par Apple Python qui sont en /System/Libraryet /usr/bin, comme cela peut briser l' ensemble de votre système d'exploitation.


REMARQUE: les étapes répertoriées ci-dessous n'affectent pas le système Python 2.7 fourni par Apple; ils ne suppriment qu'un framework Python tiers, comme ceux installés par les installateurs python.org .


La liste complète est documentée ici . Fondamentalement, tout ce que vous devez faire est le suivant:

  1. Supprimez le cadre Python 2.7 tiers

    sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7
  2. Supprimez le répertoire des applications Python 2.7

    sudo rm -rf "/Applications/Python 2.7"
  3. Supprimez les liens symboliques, dans /usr/local/bin, qui pointent vers cette version Python. Les voir en utilisant

    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' 

    puis exécutez la commande suivante pour supprimer tous les liens:

    cd /usr/local/bin/
    ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm
  4. Si nécessaire, modifiez vos fichiers de profil shell pour supprimer l'ajout /Library/Frameworks/Python.framework/Versions/2.7à votre PATHfichier d'environnement. Selon le shell que vous utilisez, l' un des fichiers suivants peuvent avoir été modifiés: ~/.bash_login, ~/.bash_profile, ~/.cshrc, ~/.profile, ~/.tcshrc, et / ou ~/.zprofile.

Ned Deily
la source
157
Merci pour l'avertissement Ned, je l'ai supprimé et j'ai découvert la manière difficile de réinstaller Mac OS X. Je laisse cela ici à toute personne qui vient et pense la même chose que moi. Ne supprimez pas Python dans / System / Library / Frameworks / ... Aucune de vos applications ne fonctionnera et vous devrez réinstaller OS X.
brthornbury
45
Python 2.7 est le système par défaut Python sur les systèmes récents, tandis que sur 10.6.4 il était 2.6 et 2.7 était installé par l'utilisateur. NE DÉSINSTALLEZ PAS 2.7 D'UN SYSTÈME OS X RÉCENT.
Martijn Pieters
30
Les étapes ci-dessus ne suppriment pas le système Python d' aucune version d'OS X. Les systèmes Pythons sont installés dans /System/Library/Frameworks(que vous ne devez jamais modifier), non /Library/Frameworks.
Ned Deily
5
brew doctorpeut également être utilisé pour trouver les liens symboliques inutilisés.
Shubham Kushwah
5
Ne faites pas ces étapes !!!!! Votre environnement virtualenv sera cassé !!!!! Oh mon Dieu!!! Pourquoi ai-je fait ces étapes !!!!!!!!!!
FIREUSD
75

Celui-ci fonctionne:

cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/2.7' | awk '{print $9}' | tr -d @ | xargs rm

Description: Il répertorie tous les liens, supprime le @caractère, puis les supprime.

conehead
la source
1
J'ai essayé toutes les réponses fournies ici, et c'est celle qui a finalement fait l'affaire.
jtsmith1287
25

Si vous l'avez installé à l'aide du programme d'installation PKG, vous pouvez faire:

pkgutil --pkgs

ou mieux:

pkgutil --pkgs | grep org.python.Python

qui produira quelque chose comme:

org.python.Python.PythonApplications-2.7
org.python.Python.PythonDocumentation-2.7
org.python.Python.PythonFramework-2.7
org.python.Python.PythonProfileChanges-2.7
org.python.Python.PythonUnixTools-2.7

vous pouvez maintenant sélectionner les packages à dissocier (supprimer).

Voici la documentation de dissociation:

 --unlink package-id
             Unlinks (removes) each file referenced by package-id. WARNING: This command makes no attempt to perform reference counting or dependency analy-
             sis. It can easily remove files required by your system. It may include unexpected files due to package tainting. Use the --files command first
             to double check.

Dans mon exemple, vous taperez

pkgutil --unlink org.python.Python.PythonApplications-2.7
pkgutil --unlink org.python.Python.PythonDocumentation-2.7
pkgutil --unlink org.python.Python.PythonFramework-2.7
pkgutil --unlink org.python.Python.PythonProfileChanges-2.7
pkgutil --unlink org.python.Python.PythonUnixTools-2.7

ou en une seule ligne:

pkgutil --pkgs | grep org.python.Python | xargs -L1 pkgutil -f --unlink

Important: --unlink n'est plus disponible à partir de Lion (au premier trimestre 2014 qui inclurait Lion, Mountain Lion et Mavericks). Si quelqu'un qui vient à ces instructions essaie de l'utiliser avec lion, devrait plutôt essayer de l'adapter avec ce que dit ce post: https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X

Gabriel Mazetto
la source
4
Malheureusement, en fonction de pkgutilne supprimera pas tous les fichiers installés par le programme d'installation de Python car certains d'entre eux sont créés lors de l'installation des scripts postflight et, en tant que tels, ne sont pas enregistrés.
Ned Deily
21

Essayer de désinstaller Python avec

brew uninstall python

ne pas supprimer le Python nativement installé mais la version installée avec brew.

Daniel Lee
la source
9

En ce qui concerne la suppression des liens symboliques, j'ai trouvé cela utile.

find /usr/local/bin -lname '../../../Library/Frameworks/Python.framework/Versions/2.7/*' -delete
user86559
la source
c'est une bien meilleure idée que d'analyser la sortie de lscomme dans la réponse acceptée
spin
9

Créer le lien symbolique vers la dernière version

 ln -s -f /usr/local/bin/python3.8 /usr/local/bin/python

Fermer et ouvrir un nouveau terminal

et essaye

 python --version
Athul Raj
la source
Merci beaucoup et il en va de même pour pip "ln -s -f / usr / local / bin / pip3 / usr / local / bin / pip" puis "pip --version" également si vous souhaitez mettre à jour pip utilisez cette commande "pip install --upgrade pip"
Moh Alaraabi
6

Pas besoin de désinstaller les anciennes versions de python.

Installez simplement la nouvelle version, dites python-3.3.2-macosx10.6.dmg et changez le lien logiciel de python en python3.3 nouvellement installé

Vérifiez le chemin d'accès de python et python3.3 par défaut avec les commandes suivantes

"quel python" et "quel python3.3"

puis supprimez le lien logiciel existant de python et pointez-le vers python3.3

minhas23
la source
10
Merci, mais cela ne répond pas à ma question. La question n'est pas de savoir si je dois désinstaller une ancienne version de python pour installer une nouvelle version.
Jan Deinhard
1
Cela semble l'approche la plus sûre, car pour moi, le nettoyage avec ce que le système d'exploitation met sur la machine ne fonctionne généralement pas si bien. Moi aussi, «j'ai obtenu le package d'installation de python.org » après avoir rencontré des problèmes de syntaxe à partir des instructions python3 dans un shell python2. Ma première pensée a été de supprimer python2 et d'utiliser python3 à la place. Cependant, à partir de messages précédents qui confirment les dangers de cette action. Ce fut la meilleure solution pour moi et suit l'idée "d'utiliser les liens pour rediriger le comportement". De plus, le shell python3 était déjà installé, il suffisait de taper "python3" au lieu de "python" à l'invite.
Mark Longmire
@ minhas23 Comment supprimer le lien logiciel et en créer un nouveau?
doberkofler
4

Onur Güzel fournit la solution dans son article de blog, "Désinstaller le package Python d'OS X .

Vous devez taper les commandes suivantes dans le terminal:

  1. sudo rm -rf /Library/Frameworks/Python.framework

  2. cd /usr/local/bin

  3. ls -l . | grep '../Library/Frameworks/Python.framework' | awk '{print $9}' | xargs sudo rm

  4. sudo rm -rf "/Applications/Python x.y"

    où la commande xy est la version de Python installée. Selon votre question, ce devrait être 2,7.

Dans les mots d'Onur:

AVERTISSEMENT: cette commande supprimera toutes les versions de Python installées avec les packages. Python fourni par le système ne sera pas affecté.

Si plusieurs versions de Python sont installées à partir de python.org, exécutez à nouveau la quatrième commande, en changeant "xy" pour chaque version de Python à désinstaller.

AQ
la source
Cela a résolu mon problème, j'ai 2.7.10 et brew installé 2.7.15 et quand j'ai exécuté "python" le 2.7.10 était toujours affiché pas 2.7.15, après votre aide tout fonctionne maintenant, merci
Radek
4

Remarque : Si vous avez installé Python à l'aide de Homebrew, vous pouvez suivre les étapes suivantes, sinon recherchez une autre solution!


Pour désinstaller Python 2.7.10 que vous avez installé à l'aide de Homebrew, vous pouvez simplement émettre la commande suivante:

brew uninstall python

De même, si vous souhaitez désinstaller Python 3 (que vous avez installé à l'aide de Homebrew):

brew uninstall --force python3
John Mulhall
la source
3

Pas besoin de le désinstaller ou de devenir fou avec des liens symboliques, utilisez simplement un alias. J'ai rencontré le même problème lors de la mise à niveau vers python 3.7.1.
Installez simplement la nouvelle version de python en utilisant brew install pythonensuite dans votre .bash_profilecréer un alias pointant vers la nouvelle version de python; comme ceci: alias python="/usr/local/bin/python3"puis enregistrez et exécutez source ~/.bash_profile.
Terminé.

Roberto Manfreda
la source
2

Si vous songez à supprimer manuellement Python 2.7 par défaut d'Apple, je vous suggère de suspendre le feu et de ne pas le faire: il semble qu'Apple le fera très bientôt pour vous:

Python 2.7 déconseillé dans OSX 10.15 Catalina

Python 2.7- ainsi que Ruby & Perl- sont déconseillés dans Catalina: (passez à la section " Runtimes du langage de script "> " Dépréciations ")

https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes

Apple supprime Python 2.7 dans OSX 10.16

En effet, si vous ne faites rien du tout, selon The Mac Observer , par OSX version 10.16, Python 2.7 disparaîtra de votre système:

https://www.macobserver.com/analysis/macos-catalina-deprecates-unix-scripting-languages/

Compte tenu de cette révélation, je suggère que la meilleure solution consiste à ne rien faire et à attendre qu'Apple l'efface pour vous. Comme Apple est sur le point de le supprimer pour vous, cela ne semble pas valoir le risque de bricoler votre environnement Python.

REMARQUE : je vois que la question concerne spécifiquement OSX v 10.6.4 , mais il semble que cette question soit devenue un point de pivot pour toutes les personnes OSX intéressées par la suppression de Python 2.7 de leurs systèmes, quelle que soit la version qu'ils exécutent.

F1Linux
la source