web-dev-qa-db-fra.com

ImportError: impossible d'importer le nom principal lors de l'exécution de la commande pip --version dans Windows 7 32 bits

J'ai installé la dernière version de Python (2.7.9) fournie avec pip et setuptools pour Windows 32 bits. J'ai essayé de réinstaller pip mais le problème persiste.

Voici l'erreur après avoir exécuté pip --version dans Administrator cmd:

Traceback (most recent call last):
 File "D:\Python\lib\runpy.py", line 162, in _run_module_as_main
  "__main__", fname, loader, pkg_name)
 File "D:\Python\lib\runpy.py", line 72, in _run_code 
  exec code in run_globals
 File "D:\Python\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main
98
Woootiness

Le bogue se trouve dans le pip 10.0.0.

Sous Linux, vous devez modifier le fichier:/usr/bin/pip à partir de:

from pip import main
if __== '__main__':
    sys.exit(main())

pour ça:

from pip import __main__
if __== '__main__':
    sys.exit(__main__._main())
187
catalinpopescu

Même si la question initiale semble être celle de 2015, ce "bogue" semble également affecter les utilisateurs installant pip-10.0.0

La solution de contournement consiste à ne pas modifier pip, mais à modifier la façon dont pip est appelé. Au lieu d'appeler /usr/bin/pip, appelez pip via Python lui-même. Par exemple, au lieu de ce qui suit:

pip install <package>

Si depuis Python version 2 (ou le binaire Python par défaut s'appelle python), faites: 

python -m pip install <package>

ou si à partir de Python version 3: 

python3 -m pip install <package> 
119
Wan Bachtiar

Sur Ubuntu Server 16, j'ai le même problème avec python27. Essaye ça:

Changement 

from pip import main
if __== '__main__':
    sys.exit(main())

À

from pip._internal import main
if __== '__main__':
    sys.exit(main())
43
Shuai Liu

Sous Windows 10, j'ai utilisé les commandes suivantes pour rétrograder pip:

python -m pip uninstall pip
python -m pip install pip==9.0.3

Ça marche.

12
zeet

j'ai résolu le problème en réinstallant pip en utilisant get-pip.py.

  1. Téléchargez get-pip depuis le lien officiel: https://pip.pypa.io/fr/stable/installing/#upgrading-pip
  2. lancez-le en utilisant commande: python get-pip.py.

Et pip est fixe et fonctionne parfaitement.

4
Bachir Mehemmel

J'ai eu le même problème, mais désinstaller et réinstaller avec apt et pip ne fonctionnait pas pour moi.

J'ai vu une autre solution qui présente un moyen facile de récupérer le chemin pip3:

Sudo python3 -m pip uninstall pip && Sudo apt install python3-pip --reinstall
2
Hamza Ali

Sous MacOS, si vous avez installé python via Homebrew, modifiez la ligne dans /usr/local/opt/python/libexec/bin/pip

de 

from pip.internal import main

à

from pip._internal import main

Ou utilisez cette doublure: sed -i '' "s/from pip import main/from pip._internal import main/" /usr/local/opt/python/libexec/bin/pip

Explication:

Le problème est dû aux modifications apportées dans le pip version 10 déplaçant l’espace de nom interne sous main._internal et au script bin mis en place par homebrew qui le cherchait toujours à l’ancien emplacement (où il était auparavant). Problème et discussion https://github.com/pypa/pip/issues/5240

2
Madis Nõmme

Si vous avez un lien physique à analyser dans votre PATH (c'est-à-dire si vous avez plusieurs versions de Python installées) et que vous mettez ensuite à niveau pip, vous pouvez également rencontrer cette erreur.

La solution consiste à recréer le lien dur. Ou encore mieux, arrêtez d'utiliser des liens physiques et utilisez des liens souples.

1

Une solution simple qui fonctionne avec Ubuntu, mais qui peut également résoudre le problème sous Windows:

Il suffit d'appeler

pip install --upgrade pip
0
juergi

essaye ça

#!/usr/bin/python
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.i
try:
    from pip import main
except ImportError:
    from pip._internal import main
if __== '__main__':
    sys.exit(main())
0
Abdul Gaffar

Pour ceux qui rencontrent des problèmes similaires lors de l’utilisation du pip 10 avec PyCharm, téléchargez la dernière version ici

0
Jacob Geryk

Cela fonctionne sur Ubuntu 16.04. Étape 1:

 Sudo gedit /home/user_name/.local/bin/pip

un fichier s'ouvre avec le contenu:

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

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

Changez la main en __main__ tel qu’il apparaît ci-dessous:

#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pip import __main__

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

Enregistrez le fichier et fermez-le. Et vous avez terminé!

0
Anas Musah