pip: aucun module nommé _internal

98

J'ai un problème lorsque j'essaye d'utiliser pip de quelque manière que ce soit. J'utilise Ubuntu 16.04.4

Je dois dire que je l'ai déjà utilisé et que je n'ai jamais eu de problème, mais à partir d'aujourd'hui, lorsque j'utilise une commande, j'obtiens toujours la même erreur (comme exemple d'utilisation pip --upgrade).

Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named _internal

J'ai essayé de faire sudo apt-get remove python-pipsuivi sudo apt-get install python-pipmais rien n'a changé.

Grimdrem
la source
Assurez-vous que cela /usr/local/lib/pythonX.X/site-packagesprécède /usr/lib/pythonX.X/site-packagesdans votre $PATH.
hoefling
Même problème ici. Avez-vous trouvé une solution?
WayBehind
3
@WayBehind j'ai trouvé une solution. J'ai remarqué que python -m piptout fonctionne très bien. À côté de cela, j'ai supprimé le fichier /usr/local/bin/pip, appelant maintenant pip -Vreturn pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7). Tout semble fonctionner comme prévu.
Grimdrem
J'ai toujours le même problème, j'utilise pip dans l'environnement conda, python 2.7 et j'utilise pip install ipdb. Une idée à ce sujet?
Garvita Tiwari
1
Suivi des étapes plus le drapeau -H:sudo -H python3.7 get-pip.py --force-reinstall
Andres Leon Rangel

Réponses:

112

Cela l'a fait pour moi:

python -m pip install --upgrade pip

Environnement: OSX && Python installés via brew

magie
la source
6
Merci, c'était la solution pour moi en utilisant python3.
Furbeenator
2
Cela n'a pas fonctionné pour moi. ce que @Grimdrem a fait, c'est ce que j'ai fini par faire. J'avais (dans le passé) installé pip for all (en utilisant sudo ou quelque chose) ... et ma mise à niveau était avec --user donc l'autre installation traînait toujours ... en le supprimant de / usr / local / bin et de mon Le dossier de paquets principal de python (pas --user) a fait l'affaire.
user1269942
Étrangement, cela a résolu le problème ici aussi. Je devais mettre à jour #searx vers le dernier commit.
Roland
Ran dans ceci sur Ubuntu sur WSL. J'utilise aussi pyenv, mais j'avais en quelque sorte étouffé le système python qui vimutilise. Cela a mis les choses là où elles devaient être et taskwikifonctionne à nouveau. Ouf!
Daniel Black le
Merci, cela fonctionne pour moi, j'utilise python 3.8
Onaapo
62

Une réponse de askUbuntu fonctionne.

Pour pip2.7, vous pouvez dans un premier temps curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py, puis python2.7 get-pip.py --force-reinstallréinstaller pip.

Problème résolu. Fonctionne également pour python3.

YongHao Hu
la source
6
Cela ne fonctionne pas pour moi, j'ai essayé cela plusieurs fois
Cleve Green
1
Je l'ai corrigé en réinstallant python, ce qui était une douleur absolue maintenant que je n'ai aucun de mes modules précédents
Cleve Green
Juste mordu par ce problème, semble être un peu un cluster qui apt-get install python-pipne fonctionne pas sur 16.04.4 et que vous avez recours à des installateurs de blob binaires?
Joe
1
pour le faire fonctionner, j'ai dû supprimer toutes mes choses de pip côté système :apt-get remove python-pip-whl
Jan
"Permission refusée". Vous devez probablement utiliser sudo. La plupart des distributions ne permettent pas aux utilisateurs vanilla d'installer pip à l'échelle du système.
Cerin
21

Cette solution fonctionne pour moi:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall

ou utilisez sudo pour des autorisations élevées ( sudo python3 get-pip.py --force-reinstall).

Bien sûr, vous pouvez également utiliser à la pythonplace de python3;)

La source

Abdallah Okasha
la source
19

Reportez-vous à cette liste de problèmes

sudo easy_install pip

fonctionne pour moi sous Mac OS

Pour python3, peut essayer sudo easy_install-3.x pipdépend de la version de python 3.x. Oupython3 -m pip install --user --upgrade pip

zangw
la source
1
C'est le vieux Python2. Sur Python3 Ubuntu au moins, vous devez également exécuter sudo easy_install-3.4 pipou similaire.
NoBugs
11

Dans le fichier "/ usr / local / bin / pip", remplacez from pip._internal import main parfrom pip import main

GauthamGAjith
la source
9

Ce problème est peut-être dû au fait que l'utilisateur commun n'a pas le privilège d'accéder au fichier py des packages.
1. l'utilisateur root peut exécuter «pip list»
2. un autre utilisateur commun ne peut pas exécuter «pip list»

[~]$ pip list
Traceback (most recent call last):
  File "/usr/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named pip._internal

Vérifiez les privilèges du fichier pip py.

[root@]# ll /usr/lib/python2.7/site-packages/pip/  
合計 24  
-rw-------  1 root root   24  6  7 16:57 __init__.py  
-rw-------  1 root root  163  6  7 16:57 __init__.pyc  
-rw-------  1 root root  629  6  7 16:57 __main__.py  
-rw-------  1 root root  510  6  7 16:57 __main__.pyc  
drwx------  8 root root 4096  6  7 16:57 _internal  
drwx------ 18 root root 4096  6  7 16:57 _vendor  

solution: connexion et exécution de l'utilisateur root

chmod -R 755 /usr/lib/python2.7 

résoudre ce problème.

Yi Yang Apollo
la source
Enfin une explication logique de ce qu'est réellement le problème. La réinstallation peut résoudre le problème, mais c'est la vraie raison pour laquelle cela ne fonctionne pas en premier lieu.
Maxime Viargues le
6

Pour être complet, je viens de rencontrer ce problème avec "Ubuntu latest" ... v18.04 ... et je l'ai corrigé de cette manière:

python3 -m pip install --upgrade pip

(Notez qu'il était nécessaire de spécifier python3car cela fait référence à Python 3.6.9. La pythoncommande sur le même système fait référence à Python 2.7.17. Comme il s'agit apparemment d'une installation à l'échelle du système, elle a rencontré une autorisation ["not sudo" ...] erreur, mais peu importait car ce n'était pas la bonne chose à faire de toute façon. Je rencontrais le problème avec pip3.)

Mike Robinson
la source
J'ai eu l'erreur no such option: --upradesur votre commande - alors j'ai couru python3 -m pip install pipet cela a fonctionné :)
Xerus
5

J'ai vu ce problème quand a PYTHONPATHété configuré pour inclure le site-packagesrépertoire intégré . Puisque Python y regarde automatiquement, il est inutile et peut être supprimé.

Levi Morrison
la source
2
Cela a résolu le problème pour moi, merci. J'ai simplement sauvé $ PYTHONPATH quelque part, puis j'ai couru export PYTHONPATH=""pour faire fonctionner pip.
ibowman
mais en essayant echo $ PYTHONPATH, les packages de site n'étaient pas inclus.
alyssaeliyah
J'ai rencontré cela lors de la création d'un environnement virtuel sur un système qui utilise des modules pour gérer des progiciels. Quand je l'ai chargé, vous dites "module load python / 3.5.2" et il ajoute votre fichier PYTHONPATH. Ensuite, lorsque j'ai activé mon env virtuel, il n'a jamais désarmé mon PYTHONPATH, ce qui signifie qu'il a trouvé le niveau du système pipet non celui de mon virtualenv.
irritable_phd_syndrom
4

Je viens de rencontrer le même problème et dans mon cas, il s'avère qu'il s'agit d'un conflit entre l'installation de python dans mon virtualenv et le python à l'échelle du site (Ubuntu). Ce qui résout le problème pour moi, c'est d'exécuter pip de cette manière, pour forcer l'utilisation de l'installation correcte de python (dans mon vortualenv):

python3 -m pip install PACKAGE

au lieu de

pip3 install PACKAGE

Je m'en suis rendu compte lorsque j'ai essayé de suivre certaines des réponses ici qui suggèrent de réinstaller pip et que le résultat d'erreur que j'ai obtenu pointait vers un chemin de bibliothèque python existant à l'échelle du site bien que j'avais activé mon virtualenv. Cela vaut la peine d'essayer avant de supprimer et de réinstaller des éléments.

tospo
la source
Comme mentionné dans cette réponse, stackoverflow.com/a/50737296/1340995, c'est un problème d'autorisation. J'ai trouvé que l'utilisation de pip avec python3 -m piprésout également ce problème, probablement parce qu'il pythona l'autorisation d'exécuter et qu'il n'a pas besoin de pip pour avoir l'autorisation + x car il ne fait que charger le fichier et ne pas l'exécuter.
Maxime Viargues le
3

Utilisez-vous python2 ou python3? La commande suivante pourrait être différente!

  1. utilisation python3 -m pip --version pour voir si vous avez installé pip.
  2. si oui, cours python3 -m pip install --upgrade pip .
  3. si non, exécutez sudo apt-get install python3-pipet recommencez.
Dongcheng Wang
la source
3

C'est probablement dû à un conflit de version, essayez de l'exécuter, cela supprimera d'une manière ou d'une autre l'ancien pip.

sudo apt remove python pip
Tinashe Makuti
la source
Pour ce que ça vaut, cela semble être la solution pour une distribution de type Debian ( par exemple , Ubuntu 16.04) où le python-pippaquet a été installé au niveau de la distribution, et get-pip.pya été utilisé pour une version spécifique à l'utilisateur pipqui était également dans le $PATH. J'ai mis sudo apt-get removele python-pippaquet (2.7) et utilisé celui de mon ~ / .local / bin à la place. Plus de message d'erreur.
TheDudeAbides
3

Pour moi

python -m pip uninstall pip

résolu le problème. Référence

Hariszaman
la source
2

J'ai corrigé cette erreur en exécutant les commandes suivantes:

sudo apt remove python-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Il supprimera le pip précédemment installé et le réinstallera. Merci :)

Ateeb
la source
1

La solution suivante a résolu le problème sur ma machine pour python2.7 "$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py" puis "$ sudo python2.7 get-pip .py --force-reinstall "

Merwanski
la source
1
Celui-ci fonctionne pour moi, mais vous devez le changer pour la version python que vous utilisez. sudo python3 get-pip.py --force-reinstall. Génial.
alyssaeliyah
1

Seulement pour l'utilisateur actuel:

easy_install --user pip

ou

python -m pip install --upgrade --user pip

Le second peut donner /usr/bin/python: No module named pip Even if which piptrouve le module nommé pip. Dans ce cas, essayez leeasy_install

Mihai.Mehe
la source
1

J'ai rencontré la même erreur sur Windows lorsque j'ai essayé d'installer un package via pip3:

Traceback (most recent call last):
  File "d:\anaconda\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\anaconda\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Anaconda\Scripts\pip3.6.exe\__main__.py", line 5, in <module>
ModuleNotFoundError: No module named 'pip._internal'

Mon python est installé via Anaconda. J'ai résolu ce problème en réinstallant pip via conda:

conda install pip

Après cela, pip revient à la normale.

jdhao
la source
0

Rien n'a fonctionné pour moi, mais une seule chose: j'ai utilisé sudo devant la commande et cela fonctionne bien.

GeorgesD
la source
Mon cas était plus étrange car "sudo" me donnait toujours la même erreur. J'ai dû passer en root (sudo su sur ubuntu) pour pouvoir faire pip3.5 list et pip3.5 installer: |
jmng
0

J'ai le même problème sur mon environnement virtuel après la mise à niveau de l'installation de python de la version 3.6 à la 3.7, mais uniquement sur l'évent globalement, le pip fonctionne correctement, pour le résoudre, je désactive et supprime mon environnement virtuel après avoir recréé à nouveau et maintenant c'est bien, sur venv:

deactivate
rm -rvf venv 

et après recréer l'environnement virtuel. J'utilise mac OS 10.11 et python 3

bayocr
la source
0

(Sous Windows) je ne sais pas pourquoi cela se passait mais j'avais ma configuration PYTHONPATH pour pointer vers c: \ python27 où python était installé. en combinaison avec virtualenv, cela a produit le bogue mentionné.

résolu en supprimant le PYTHONPATH env var tous ensemble

Gil Hiram
la source
0

ma solution: première étape comme la plupart des autres réponses:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python2.7 get-pip.py --force-reinstall

deuxièmement, ajoutez un lien souple

sudo ln -s /usr/local/bin/pip /usr/bin/pip
John
la source
0

vous pouvez d'abord le supprimer, puis installer à nouveau, ce sera ok. pour centos:

yum remove python-pip
yum install python-pip
user3890444
la source
0

J'ai résolu ce problème en

sudo apt-get install python3-pip

cela a fonctionné même pour python2.7, incroyable ...

Yu Jiaao
la source
0

Ma solution est d'ajouter import pipau script lié aux pip/pip3commandes.

Tout d'abord, ouvrez le fichier (par exemple /usr/local/bin/pip) avec votre éditeur de texte préféré et le mode sudo. Par exemple, j'utilise sudo vim /usr/local/bin/pippour ouvrir le fichier de script.

Vous obtiendrez un fichier comme suit:

import re
import sys

from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Ensuite, insérez l'instruction import pipjuste avant le from pip._internal import mainpuis le problème est résolu.

N.Hung
la source
0

Celles-ci proviennent souvent de l'utilisation de pip pour «mettre à jour» le système pip installé, et / ou d'avoir plusieurs installations pip sous l'utilisateur. Ma solution était de nettoyer les multiples pips installés sous user, de réinstaller pip repo, puis de "pip install --user pip" comme ci-dessus.

Voir: https://github.com/pypa/pip/issues/5599 pour une discussion officielle complète et des correctifs pour le problème.

user2898616
la source
0

J'ai essayé la commande suivante pour résoudre le problème et cela a fonctionné pour moi:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
Abbas Khan
la source