113 votes

Comment mettre à niveau le package Disutils PyYAML?

J'ai essayé d'installer agent conversationnel qui a une dépendance sur PyYAML=3.12. Dans ma machine Ubuntu installé PyYAML version 3.11. J'ai donc utilisé la commande suivante pour mettre à niveau PyYAML:

sudo -H pip3 install --upgrade PyYAML

Mais il donne l'erreur suivante:

Impossible de désinstaller le 'PyYAML'. C'est un distutils installé projet et il nous est donc impossible de déterminer avec précision les fichiers qui appartiennent à ce qui conduirait à une partie seulement de désinstaller.

Mon pip3 version 10.0.0.

Comment résoudre ce problème?

192voto

Fenhl Points 690

Essayez d'utiliser l'indicateur --ignore-installed :

sudo -H pip3 install --ignore-installed PyYAML

Cela fonctionne car pour mettre à niveau un package, pip désinstalle d'abord l'ancienne version, puis installe la nouvelle version. C'est l'étape de désinstallation qui échoue pour les packages distutils. Avec l'indicateur --ignore-installed , l'étape de désinstallation est ignorée et la nouvelle version est simplement installée par-dessus l'ancienne.

75voto

mehboob sayyed Points 51

Vous pouvez essayer ceci:

 $pip install --ignore-installed PyYAML
 

30voto

sphoenix Points 433

J'ai trouvé dans ce problème Github que pip 10 ne désinstalle plus les packages distutils . J'ai donc rétrogradé à pip 8.1.1. Et maintenant ça marche.

Si quelqu'un, qui regarde cette question, sait comment désinstaller ou mettre à niveau le paquet distutils avec pip 10.0.0, veuillez me le faire savoir ici. :)

(Si quelqu'un a besoin)
Et pour rétrograder pip, j'ai utilisé ce qui suit:

sudo -H pip3 install pip==8.1.1

13voto

Jinna Balu Points 1246

Problème:

Impossible de désinstaller 'PyYAML'. Il s'agit d'un projet installé distutils et nous ne pouvons donc pas déterminer avec précision quels fichiers lui appartiennent, ce qui ne conduirait qu'à une désinstallation partielle.

Solution: supprimer le package Dist et exécuter

sudo rm -rf /usr/lib/python3/dist-packages/yaml

sudo rm -rf /usr/lib/python3/dist-packages/PyYAML-*

Supprimer le dossier de distutils fonctionne

6voto

J'ai personnellement installé PyYAML sur anaconda, juste en exécutant 'conda remove PyYAML' et en exécutant ma commande pip, j'ai travaillé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X