J'ai accidentellement installé Python paquets sur mon système en utilisant pip
au lieu de apt-get
. Je l'ai fait de deux manières:
--no-site-packages
lors de la création de virtualenv - ensuite, lorsque j’ai appelé pip install
, les packages Python ont été installés sur le système plutôt que virtualenv.Sudo pip install somepackage
- le Sudo installé sur le système plutôt que le virtualenvJe me suis rendu compte de cela parce que j’ai tapé pip freeze
en dehors d’un virtualenv, et j’ai repéré des paquets Python énumérés qui ne devraient pas être là. Alors maintenant ma question est:
pip freeze
mais n'ayant pas été installés avec apt-get
)?Ubuntu Oneiric (et j'attends également les versions les plus récentes) installe les packages pip sur /usr/local/lib/python2.7/dist-packages
et les packages apt
sur /usr/lib/python2.7/dist-packages
. Il suffit donc de vérifier l’ancien répertoire et Sudo pip uninstall
chaque paquet que vous trouvez là.
Pip ignore actuellement les commandes de désinstallation qui tentent de désinstaller quelque chose appartenant au système d'exploitation. Il ne fait pas d'erreur, comme c'est le cas avec un paquet manquant. Donc, maintenant, vous pouvez désinstaller avec le processus suivant:
pip freeze > dump.txt
Editez le fichier vidé pour supprimer toutes les lignes -e
"installation éditable", tout ce qui suit le signe ==
(%s;==.*;;g
dans vim), remplacez les nouvelles lignes par des espaces (%s;\n; ;g
dans vim). Ensuite, vous pouvez désinstaller tous les packages non propriétaires avec
cat dump.txt | xargs Sudo pip uninstall -y
J'ai dû faire cette procédure deux fois, car quelques paquets ont également été installés dans ~/.local/lib
.
Autant que je sache, Sudo pip install
sera installé sur /usr/local/lib/pythonVERSION/dist-packages
. Vous devez exécuter Sudo pip uninstall
pour désinstaller les packages à l'échelle du système. Il semble que pip freeze
recherche les métadonnées du paquet et répertorie tout ce qui est installé, à la fois depuis pip et depuis apt-get en dehors de virtualenvs. Il existe une option -l
dans l'environnement virtuel pour répertorier les packages uniquement applicables à cet environnement virtuel, mais cela semble également être le cas par défaut dans l'environnement virtuel. Je pense que vous pouvez simplement supprimer les paquets liés sur /usr/local/lib/pythonVERSION/dist-packages
également, mais la méthode n’est pas très pratique, je suppose.
Pour supprimer un paquet installé via pip, appuyez simplement sur Ctrl+Alt+T sur votre clavier pour ouvrir Terminal. Quand il s'ouvre, lancez la commande ci-dessous.
pip uninstall < package-name >
Pour rechercher des forfaits
pip search <package you want to search for>
Pour déterminer quels packages Python ont été installés par pip, à l'aide de la commande freeze
, qui vous fournira une liste des packages installés et de leurs versions. Je suggère de supprimer toutes les instances et de réinstaller à l'aide de la commande Sudo apt-get
Sudo apt-get install python3
Je devais nettoyer l'espace disque de Python packages en toute sécurité. Bien qu'il s'agisse d'un nettoyage complet des paquets, j'avais besoin de déplacer les versions de Python afin de ne pas avoir besoin d'anciens paquets. J'ai utilisé ce qui suit pour obtenir tous les noms de mes paquets, ignorer les 2 premières lignes et récupérer la première colonne, puis désinstaller sans interaction de l'utilisateur:
pip list | awk 'NR>2 {print $1}' | xargs -I {} pip uninstall -y {}