HOWTO · Python

Désinstaller Python sur macOS

Apprenez à désinstaller Python sur macOS pour chaque mode d'installation : supprimez une version Homebrew ou pyenv, supprimez complètement une installation python.org et nettoyez les fichiers qu'elle laisse derrière elle.

Sur cette page

La façon de désinstaller Python sur macOS dépend de la manière dont il a été installé ; la première étape consiste donc toujours à déterminer quelle installation vous possédez. Cet article couvre les trois cas courants — Homebrew, l’installeur python.org et pyenv — explique pourquoi le Python fourni avec macOS doit être laissé en place, et se termine par les fichiers restants qui valent la peine d’être nettoyés.

Exécutez which -a python3 dans le terminal avant de commencer. Les chemins qu’il affiche vous indiquent quelles sections vous concernent : les chemins /opt/homebrew ou /usr/local/Cellar appartiennent à Homebrew, /Library/Frameworks/Python.framework appartient à l’installeur python.org, et les chemins sous ~/.pyenv appartiennent à pyenv.

Comprendre Python sur macOS

Un Mac peut contenir plusieurs installations de Python à la fois, et elles n’interfèrent pas entre elles. Apple fournit une commande python3 avec macOS pour ses propres outils de développement, et tout ce que vous avez installé vous-même — via Homebrew, l’installeur python.org ou pyenv — réside séparément à côté.

Pour cette raison, « désinstaller Python » signifie presque toujours supprimer une copie que vous avez installée vous-même, et non Python dans son ensemble. Supprimer une copie dont dépendent d’autres outils peut les casser ; identifiez donc l’installation que vous voulez réellement supprimer, à l’aide des chemins de which -a python3, avant de supprimer quoi que ce soit.

Désinstaller Python installé avec Homebrew

Si vous avez installé Python avec Homebrew, laissez Homebrew le supprimer afin que les fichiers et liens de la formule soient nettoyés de manière cohérente. Commencez par lister les formules Python installées par Homebrew :

brew list | grep python

Désinstallez la version dont vous n’avez plus besoin, en nommant la formule versionnée :

brew uninstall python@3.12

Remplacez 3.12 par la version de votre propre liste. Homebrew refuse de désinstaller une formule dont dépendent d’autres formules installées ; si cela se produit, désinstallez d’abord ces dépendants ou, lorsque vous êtes sûr que rien n’en a besoin, répétez la commande avec --ignore-dependencies.

Ensuite, vérifiez la suppression : la formule n’apparaît plus dans brew list | grep python, et which -a python3 n’affiche plus de chemin Homebrew. Si python3 --version répond toujours, il s’agit d’une de vos installations restantes — le plus souvent celle de macOS décrite ci-dessous.

Désinstaller Python installé depuis python.org

L’installeur python.org n’a pas de désinstalleur propre. Comme le décrit la documentation Python, l’installeur place trois choses sur le Mac — un dossier Python 3.x dans /Applications, le framework dans /Library/Frameworks/Python.framework, et des liens symboliques vers les exécutables dans /usr/local/bin — et pour le désinstaller, vous supprimez ces trois choses.

Supprimez une version à la fois. Commencez par lister les versions présentes dans le framework :

ls /Library/Frameworks/Python.framework/Versions/

Supprimez la version que vous retirez (ici 3.12) et son dossier Applications :

sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.12
sudo rm -rf "/Applications/Python 3.12"

Supprimez ensuite uniquement les liens symboliques qui pointent vers la version que vous avez supprimée. Listez-les d’abord :

ls -l /usr/local/bin | grep "Python.framework/Versions/3.12"

Supprimez chaque lien affiché par la commande — par exemple sudo rm /usr/local/bin/python3.12 — et laissez intacts les liens qui pointent vers d’autres versions ou vers Homebrew. Si vous avez supprimé la dernière version du framework, vous pouvez supprimer /Library/Frameworks/Python.framework lui-même. L’installeur ajoute aussi le répertoire bin du framework au PATH de votre shell dans ~/.zprofile ou ~/.bash_profile ; supprimez également cette ligne.

Désinstaller Python installé via pyenv

pyenv conserve chaque version qu’il installe sous ~/.pyenv/versions, de sorte que la suppression d’une version ne touche jamais vos autres Python. Listez les versions installées :

pyenv versions

Désinstallez la version dont vous n’avez plus besoin :

pyenv uninstall 3.12.4

pyenv demande une confirmation, puis supprime le répertoire de cette version. Exécutez à nouveau pyenv versions pour confirmer que la version a disparu ; si c’était votre version globale, définissez-en une nouvelle avec pyenv global, sinon votre shell reviendra à une autre installation.

Le Python système fourni avec macOS

macOS lui-même fournit une commande python3 dans /usr/bin/python3 pour les Xcode Command Line Tools et d’autres logiciels Apple. La documentation Python est explicite à propos de cette copie : elle est contrôlée par Apple et utilisée par les logiciels fournis par Apple et par des tiers, et vous ne devez jamais la modifier ni tenter de la supprimer — elle se trouve en outre sur le volume système scellé, de sorte qu’elle ne peut pas être supprimée de la manière normale.

Il n’y a donc rien à désinstaller dans cette section. Si python3 --version signale toujours une version après la suppression de vos propres installations, vérifiez le chemin avec which python3 : lorsqu’il affiche /usr/bin/python3, la copie restante est celle du système, et la laisser en place est l’état final correct.

Nettoyer les fichiers résiduels

Les installeurs et gestionnaires de paquets peuvent laisser de petits restes. Ceux qui valent la peine d’être supprimés sont le répertoire de bibliothèque par utilisateur de la version que vous avez désinstallée et le cache de téléchargement de pip :

rm -rf ~/Library/Python/3.12
rm -rf ~/Library/Caches/pip

Ajustez le numéro de version à celui que vous avez supprimé, et ne supprimez que les répertoires qui appartiennent à cette version — une autre installation avec un numéro de version différent conserve son propre répertoire et n’est pas affectée. Les environnements virtuels que vous avez créés avec le Python supprimé ne fonctionneront plus ; supprimez aussi ces dossiers de projet, ou recréez-les avec un Python restant.

Conclusion

Désinstaller Python sur macOS est un travail par installation : les versions Homebrew sortent avec brew uninstall, les installations python.org sortent en supprimant la version du framework, le dossier Applications et ses liens symboliques /usr/local/bin, et les versions pyenv sortent avec pyenv uninstall. Le Python système de macOS n’est jamais la cible — identifiez chaque copie avec which -a python3, supprimez uniquement celle que vous visiez, et nettoyez seulement ses restes.

FAQ

  1. Comment vérifier quelles versions de Python sont installées sur macOS ?
    Exécutez which -a python3 pour voir chaque python3 de votre PATH, et vérifiez chaque gestionnaire séparément avec brew list | grep python et pyenv versions.

  2. Est-il sûr de désinstaller la version système de Python ?
    Non — et ce n’est pas nécessaire. La copie /usr/bin/python3 appartient à macOS et à ses outils de développement ; la documentation Python dit qu’elle ne doit jamais être modifiée ni supprimée.

  3. Comment puis-je réinstaller Python après l’avoir désinstallé ?
    Installez-le de la même manière qu’avant : brew install python pour Homebrew, l’installeur de python.org, ou pyenv install suivi du numéro de version pour pyenv.

  4. Que dois-je faire si une commande de désinstallation signale une erreur ?
    Lisez quel programme l’a affichée. Homebrew refuse lorsqu’une autre formule dépend du Python en cours de suppression ; les erreurs de permission sur les fichiers python.org signifient que l’étape sudo a été sautée ; un nom de version introuvable signifie qu’elle a été installée par un autre gestionnaire.

  5. Puis-je avoir plusieurs versions de Python installées simultanément ?
    Oui. Les installations de Homebrew, python.org et pyenv coexistent, et pyenv existe précisément pour basculer entre plusieurs versions.