Python >> Tutoriel Python >  >> Python Tag >> PIP

[RÉSOLU] Erreur après la mise à jour de pip :impossible d'importer le nom "main"

Énoncé du problème : Comment gérer l'erreur après la mise à jour de pip :impossible d'importer le nom "main" ?

point est un outil de gestion de packages en Python qui nous permet d'installer et de gérer des bibliothèques Python externes et des dépendances qui ne font pas partie de la bibliothèque Python standard. En d'autres termes, il s'agit d'un utilitaire qui nous permet de gérer les installations de packages PyPI à partir de la ligne de commande.

💡 FEU :

  • pip est un acronyme pour "Pip Installe des packages ” ou “Pip Installe Python “. Alternativement, il signifie également "programme d'installation préféré" .
  • La bonne nouvelle : Python 2.7. 9 et versions ultérieures (sur les versions Python2) et Python 3.4 et versions ultérieures (sur les versions Python3) sont livrés avec pip par défaut. Cela permet aux débutants d'accéder aux bibliothèques communautaires sans avoir à faire face à la difficulté de configuration.

C'était un petit aperçu de pip. Plongeons maintenant dans notre question critique et comprenons comment l'erreur après la mise à niveau de pip :impossible d'importer le nom "main" se produit .

  • Cette erreur se produit principalement lorsque vous avez accidentellement mis à jour le pip dans notre système.
  • Il apparaît lorsque pip et unpack_url sont utilisés pour télécharger des packages depuis PyPi . Dans ce cas, il vous suffit de réinstaller les packages.

Exemple : Voici une question tirée de StackOverflow qui met en évidence le problème de votre discussion ici.

Explication : pip3 La commande qui apparaît dans l'erreur ci-dessus est fournie par le responsable du paquet. Il semble que ce soit un fichier qui n'est pas géré par le système pip dans ce cas.

Solution

Voici un conseil pour vous éviter cette erreur - "N'essayez pas de modifier les fichiers gérés par le gestionnaire de packages (dans ce cas, l'utilisateur a essayé de jouer avec l'installation du système pip). Au lieu de cela, vous devez utiliser un virtualenv .” L'essentiel est - C'est une très mauvaise idée de remplacer le pip système.

Si vous voulez toujours vous en sortir, vous pouvez probablement essayer la commande suivante (en considérant que vous utilisez Python 3.x) -

python3 -m pip install package_name  

Si vous utilisez Python 2, utilisez plutôt cette commande :

python -m pip install package_name.

Remarque : Vous devez vous assurer que l'interpréteur est utilisé sur votre PC. Sur la plupart des systèmes d'exploitation, pip utilise généralement l'interpréteur Python version 2, alors que pip3 utilise l'interpréteur Python version 3. Si vous n'avez installé que Python 3 sur votre pc, pip est identique à pip3 . Pour savoir quel interpréteur est utilisé, vous devez lire la première ligne du fichier pip.

Vous pouvez choisir de résoudre ce problème en récupérant simplement le pip d'origine binaires. Considérant que vous êtes sur Ubuntu, utilisez la commande suivante -

Python2 :

python -m pip uninstall pip && sudo apt install python-pip – reinstall

Python3 :

 python3 -m pip uninstall pip && sudo apt install python3-pip – reinstall

Une note complémentaire (uniquement pour les utilisateurs d'Ubuntu)

Les utilisateurs d'Ubuntu peuvent résoudre cette méthode en utilisant la commande suivante pour désinstaller le pip 10 et conserver votre pip 8 patché fourni par Ubuntu :

$ python -m pip uninstall pip

Assurez-vous toujours d'utiliser apt dans la mesure du possible pour une installation de modules à l'échelle du système, sauf si vous utilisez un environnement virtuel. Dans les anciennes versions d'Ubuntu ou de Debian, vous devez toujours ajouter – user flag lorsque vous utilisez pip en dehors des environnements virtuels.

Parfois, le système d'exploitation vous permet d'installer rapidement des modules Python courants, y compris numpy avec APT , sans avoir besoin de pip, par exemple :

# With system dependencies:
$ sudo apt install python3-numpy python3-scipy 
$ sudo apt install python3-pip (older version)

# Apt Syntax:
To resync the package index files from up to date sources:
$ sudo apt update

# To perform a text search on all the available packages:
$ apt search <python-package-name> 

# To display all the detailed package description:
$ apt show <python-package-name> 
$ sudo apt install <python-package-name>

Cependant, si vous souhaitez utiliser le pip 10 exclusivement, il existe les méthodes suivantes pour le faire :

Vous devez rouvrir une session bash comme un nouvel onglet de terminal, ou taper bash. Suite à cela, le pip 10 devient disponible. Cependant, le pip 8 de Debian reste installé dans votre système d'exploitation mais reste cassé. Ainsi, vous devez actualiser le nom du chemin pip dans le $PATH en utilisant la commande suivante : 

$ hash -d pip && pip -V

Étant donné que le pip 8 de Debian reste installé dans votre système d'exploitation dans un état défectueux, vous devez utiliser la commande suivante pour désinstaller complètement le pip 8 de Debian, afin de faire de la place pour votre nouveau pip 10.

$ sudo apt remove python-pip && hash -d pip (for Python 3 versions it's python3 - pip) 

Remarque :Assurez-vous toujours que vous devez ajouter l'indicateur d'utilisateur - au pip 10 non fourni par Debian, sauf si vous êtes dans un environnement virtuel. Ubuntu ou Debian ne prend pas en charge le pip 10 à l'échelle du système en dehors de l'environnement virtuel et cela peut donc entraîner une erreur.

Lecture bonus

Un récapitulatif rapide de la déclaration d'importation et de l'erreur d'importation

En Python, le import déclaration a deux objectifs principaux :

  • Il est utilisé pour rechercher le module spécifié par son nom, puis le charger et l'initialiser si le module est requis.
  • Il définit en outre un nom dans l'espace de noms local dans le cadre de l'instruction d'importation. Ce nom local pourra alors être utilisé pour référencer le module accédé dans tout le code.

Si une importation rencontre des difficultés pour importer un module avec succès, elle génère une ImportError . Généralement, un tel problème se produit en raison d'une installation défectueuse ou d'un chemin non valide, ce qui génère généralement une ModuleNotFoundError dans Python 3.6 et versions ultérieures.

Vidéo associée :

La vidéo suivante vous montre comment résoudre le ImportError :

J'espère que ce tutoriel répondra à vos questions. Veuillez rester à l'écoute et abonnez-vous pour plus de solutions et de discussions intéressantes à l'avenir. Bon codage !