Installation de Python3 pip3 cassée sur Ubuntu

14

J'ai installé python3 et pip3 avec succès sur mon Ubuntu16.04, mais l'installation de pip3 est interrompue. Comment puis-je résoudre ce problème? Les informations d'erreur de pip3 installsont les suivantes:

# pip3 install xlwt
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Sortie de sudo -H pip3 install --upgrade pip

sudo -H pip3 install --upgrade pip  
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Sortie de which pip3et pip3 --version:

# which pip3
/usr/bin/pip3

# pip3 --version
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
    from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

PS Python2 pip s'exécute avec succès. Sortie de "which pip" et "pip --version":

# which pip
/usr/bin/pip

# pip --version
pip 1.5.4 from /usr/local/lib/python2.7/dist-packages/pip-1.5.4-py2.7.egg (python 2.7)

Et les informations d'installation de python et python3:

# which python
/usr/bin/python
# which python3
/usr/bin/python3

# python -V
Python 2.7.14
# python3 -V
Python 3.6.3  
mlpy
la source
Vous avez dit 16.04 dans votre message mais avez utilisé la balise 14.04. Quelle version est correcte?
edwinksl
1
16.04 est correct. Je n'ai pas trouvé la balise 16.04 pour l'instant. Désolé.
mlpy

Réponses:

12

Il y a un problème avec votre pip3, supprimez-le et réinstallez-le. Ouvrez le terminal et saisissez:

sudo apt purge python3-pip  
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip   
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
python3 -m pip install --user xlwt
Karel
la source
3
J'ai essayé mais toujours la même erreur: imgur.com/a/nAdqU .
mlpy
J'ai essayé la nouvelle solution mais toujours la même erreur.
mlpy
J'ai aussi le même problème. Quand je le fais sudo apt install python3-pip, j'obtiens l'erreur suivante:The following packages have unmet dependencies: python3-pip : Depends: python-pip-whl (= 8.1.1-2) but 8.1.1-2ubuntu0.4 is to be installed Recommends: build-essential but it is not going to be installed Recommends: python3-dev (>= 3.2) but it is not going to be installed Recommends: python3-wheel but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Kristada673
@ Kristada673 Essayez de lire les réponses à cette question: askubuntu.com/questions/363200/… . La réponse de DragonLord a fonctionné pour moi.
karel
6

L'installation du package python3-pip crée un script python dans le fichier / usr / bin / pip3. Pour fonctionner, la fonction main () doit être importée du module pip ( from pip import main). Ce chemin de méthode n'est disponible que pour la version pip empaquetée (9.0.1 dans mon cas).

Après l'exécution pip3 install --upgrade pip, la version pip devient 18.1 et main () a été déplacée pip._internal.

Utilisez la commande python3 -m pip --versionpour voir si votre cas correspond à la même situation (pip3 est également disponible avec cette méthode lorsqu'il /usr/bin/pip3est cassé).

Si oui, dans le fichier / usr / bin / pip3, remplacez la ligne 9: from pip import main par: from pip._internal import main

Le problème sera résolu. (Testé sur la distribution Ubuntu 18.04)

Vincent H.
la source
Après avoir modifié l'importation, une erreur différente apparaîtFile "/usr/bin/pip3", line 11, in <module> sys.exit(main()) TypeError: 'module' object is not callable
Miranda
2

Voici ce que j'ai trouvé utile:

  1. sudo rm -rf /usr/local/lib/python3.5/dist-packages
  2. Ne courez jamais à l' pip3intérieur sudo.
Jan Lachnitt
la source
Bien que cela corrige peut-être les choses, pouvez-vous développer votre réponse? Pourquoi supprimer ce répertoire (peut-être ajouter une mise en garde sur le python3.5chemin d'accès), pourquoi ne jamais l'exécuter avec sudo, etc.
Robert Riedl
Je ne suis pas tout à fait un expert en la matière - je voulais juste partager ce qui avait fonctionné pour moi.
Jan Lachnitt
1

Supprimez d'abord le pip3 corrompu:

rm /user/bin/pip3 /user/local/bin/pip3

Réinstallez le nouveau:

sudo apt-get remove python3-pip
sudo apt-get install python3-pip
邹若奇
la source
0

Eu le même problème, l'installation d'OpenSL l'a résolu pour moi

getupandgo
la source
Mais openssl est déjà installé sur mon Ubuntu: imgur.com/a/60kIM . C'est peut-être dû à une autre raison.
mlpy
0

Comme @Vincent H. l'a mentionné, j'ai rencontré le même problème.

Traceback (dernier appel le plus récent): Fichier "/home/ashish/.local/bin/pip3", ligne 7, depuis pip._internal import main ImportError: Aucun module nommé 'pip._internal'

Le correctif à la question était de remplacer pip._internalà pipen .local/bin/pip3en faisant sudo gedit .local/bin/pip3.

Le paresseux
la source
0

C'est un problème mais vous pouvez y remédier.

rm /user/bin/pip3 /user/local/bin/pip
sudo apt-get remove python-pip

que réinstaller

sudo apt-get install python-pip
Bonjour
la source