2
votes

Erreur d'environnement [Errno 2] lors de l'installation des packages pip ou de la mise à niveau de pip

pip fonctionnait très bien jusqu'à récemment. J'essayais d'abord d'installer un package pip en utilisant

sudo pip install --upgrade cryptography

et j'obtiens l'erreur

Impossible d'installer les packages en raison d'une erreur d'environnement: [Errno 2] Aucun fichier ou répertoire de ce type: '/home/me/.local/lib/python2.7/site-packages/pip-19.0.1.dist-info / METADATA '

Je suis ensuite entré dans les packages de site et le dossier est vide. En effet, j'ai pip installé dans des dis-packages et sa version est 18.1, pas 19.0!

J'ai essayé de mettre à jour pip via

sudo apt-get install python-pip

mais j'obtiens la même erreur.

Taper

pip --version

J'obtiens

/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/ init .py: 83: RequestsDependencyWarning: Ancienne version de cryptographie ([1, 2, 3 ]) peut provoquer un ralentissement. warnings.warn (avertissement, RequestsDependencyWarning)

pip 18.1 de /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

donc il semble que pip 18.1 est installé. En effet, si j'essaye

pip install -U pip

j'obtiens

python-pip est déjà la dernière version (8.1.1-2ubuntu0.4).

0 mis à jour, 0 nouvellement installé, 0 à supprimer et 62 non mis à jour.

Je me demandais si tous ces problèmes venaient de l'avertissement sur la cryptographie, et j'ai donc essayé de faire

pip install -e [some-git-link]

mais évidemment je reviens à la même erreur d'environnement.


1 commentaires

Je l'ai résolu uniquement en supprimant les dossiers pip en local, puis en le réinstallant. Je sais que ce n'est pas la bonne façon de désinstaller pip, mais je ne le faisais pas via pip uninstall pip


4 Réponses :


0
votes

Vous pouvez tester pour mettre à jour PythonOpenSSL:

$ sudo python -m easy_install --upgrade pyOpenSSL

Si ce n'est pas le cas, veuillez faire:

$ sudo pip install - mise à niveau de la cryptographie

Mais erreur avec: $ sudo pip

Faites donc après:

$ sudo python -m easy_install --upgrade pyOpenSSL

Amusez-vous bien,

Johan MRe


0 commentaires

4
votes

Vous n'utiliserez pas sudo avec pip . Utiliser sudo avec pip pose des problèmes. Lorsque vous faites cela, vous avez pip et le gestionnaire de paquets de votre système d'exploitation se bat. Quand ils se battent, personne ne gagne, encore moins votre installation Python et votre santé mentale personnelle. Je sais que d'innombrables tutoriels vous indiquent sudo pip install , mais ce ne sont pas vos amis. Le seul moyen sûr et fiable de maintenir une installation Python fonctionnelle est de laisser le gestionnaire de packages de votre système d'exploitation gérer ce qu'il souhaite gérer et d'utiliser pip install --user ou des environnements virtuels (en utilisant soit virtualenv ou éventuellement python -m venv si vous êtes sur Python 3).

Je ne saurais trop insister sur le fait que vous serez constamment à rencontrer de petites choses étranges (et des problèmes catastrophiques occasionnels) au sein de votre installation Python si vous installez constamment des choses sudo. Apprenez à aimer les environnements virtuels! Vous pouvez même modifier le PATH de votre shell afin que les éléments que vous installez dans un environnement soient disponibles sous forme de commandes (ce qui explique généralement pourquoi les gens pensent avoir besoin de sudo pip install ).


0 commentaires

0
votes

Comment gérer "Impossible d'installer les packages en raison d'une erreur d'environnement" lors de la mise à niveau de pip

Commencez par exécuter la ligne de commande en mode Administration à la fois dans la fenêtre et le système d'exploitation:

Ensuite,

Pour Windows: utilisez cette commande pour mettre à jour pip

+  $ *sudo python -m pip install --user --upgrade pip*

Pour MacOS:

+ *python -m pip install --user --upgrade pip*


0 commentaires

0
votes

J'avais cette erreur en essayant d'installer des packages lors de la construction d'une image Docker (avec python: 3.8 comme base). La mise à niveau de pyOpenSSL comme @Johan MRe l'a suggéré a résolu le problème pour moi.

RUN python3 -m easy_install --upgrade pyOpenSSL


0 commentaires