Maison > développement back-end > Tutoriel Python > Que se passe-t-il lorsque le nom de votre script Python est en conflit avec une bibliothèque importée ?

Que se passe-t-il lorsque le nom de votre script Python est en conflit avec une bibliothèque importée ?

DDD
Libérer: 2024-12-28 12:12:15
original
438 Les gens l'ont consulté

What Happens When Your Python Script's Name Conflicts with an Imported Library?

Importer une bibliothèque avec le même nom que le script

Lorsque vous nommez votre script avec le même nom qu'une bibliothèque importée, comme par exemple request.py, divers problèmes d’importation peuvent survenir. Ces problèmes peuvent se manifester sous la forme d'AttributeErrors, ImportErrors ou NameErrors selon l'approche d'importation utilisée.

Cela se produit car le nom du script masque la bibliothèque installée dans sys.path, donnant la priorité au script local sur l'importation prévue.

Symptômes

Plain Import

import requests

res = requests.get('http://www.google.ca')
print(res)
Copier après la connexion
  • Erreur : AttributeError : le module 'requests' n'a pas d'attribut 'get'

Import spécifique depuis Nom

from requests import get

res = get('http://www.google.ca')
print(res)
Copier après la connexion
  • Erreur : ImportError : impossible d'importer le nom 'get'

Importation du module depuis Package

from requests.auth import AuthBase
Copier après la connexion
  • Erreur : ImportError : Aucun module nommé 'requests.auth' ; 'requests' n'est pas un package

Star Import

from requests import *

res = get('http://www.google.ca')
print(res)
Copier après la connexion
  • Erreur :NameError : nom 'get' n'est pas défini

Solution

Pour résoudre ce problème, renommez votre script sous un nom différent qui n'entre en conflit avec aucun module importé. De plus, supprimez le fichier request.pyc généré (le cas échéant) pour éviter les interférences du bytecode mis en cache.

Débogage du traçage

Lorsque vous rencontrez ces erreurs, examinez attentivement le traçage pour identifier la collision de nom de module. entre le nom du script et le module importé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal