Maison  >  Article  >  développement back-end  >  Erreur Python : ImportError : impossible d'importer le nom « xxx », comment le résoudre ?

Erreur Python : ImportError : impossible d'importer le nom « xxx », comment le résoudre ?

PHPz
PHPzoriginal
2023-08-18 23:12:3916326parcourir

Python报错:ImportError: cannot import name 'xxx',该如何解决?

Erreur Python : ImportError : impossible d'importer le nom 'xxx', comment le résoudre ?

Dans le processus de programmation avec Python, il est très courant de rencontrer des erreurs. L'une des erreurs courantes est « ImportError : impossible d'importer le nom 'xxx' », c'est-à-dire qu'un nom spécifique (« xxx ») ne peut pas être importé.

Cette erreur se produit généralement dans deux situations différentes :

  1. Problème de référence circulaire :

La référence circulaire signifie que deux modules s'importent mutuellement. Par exemple, supposons qu'il y ait deux modules A et B. A importe B et B importe également A. Cette situation provoque une ImportError. Pour résoudre ce problème, nous pouvons éviter les références circulaires en ajustant la position de l'import.

Voici un exemple de code qui provoque une référence circulaire :

# module_a.py
import module_b

def foo():
    print("hello from module_a")

# module_b.py
import module_a

def bar():
    module_a.foo()

Pour résoudre le problème de référence circulaire, nous pouvons placer l'importation dans la fonction qui doit être utilisée. Le code modifié est le suivant :

# module_a.py

def foo():
    import module_b
    print("hello from module_a")

# module_b.py

def bar():
    import module_a
    module_a.foo()
  1. Le nom de l'import n'existe pas :

L'erreur Le nom de l'import n'existe pas signifie que lors de l'import d'un module, le nom correspondant n'est pas défini dans le module. Cela peut être dû au fait que le nom est mal orthographié, que le module n'existe pas ou que la variable ou la fonction correspondante n'est pas définie dans le module.

Pour résoudre ce problème, nous devons nous assurer que le module requis est correctement importé et que le nom dont nous avons besoin est présent dans le module.

Voici un exemple de code avec une erreur de nom d'importation non présent :

# module_a.py

def foo():
    print("hello from module_a")

# main.py
import module_a

module_a.bar()

Dans cet exemple, nous essayons d'appeler une fonction nommée 'bar' dans module_a, mais en fait module_a ne définit pas cette fonction.

Pour résoudre ce problème, nous devons importer le bon module où la fonction 'bar' doit être utilisée et nous assurer que cette fonction existe dans le module.

Voici le code modifié :

# module_a.py

def foo():
    print("hello from module_a")

def bar():
    print("hello from bar")

# main.py
import module_a

module_a.bar()

Dans le code modifié, nous avons défini la fonction 'bar' dans module_a et importé le module module_a dans main.py. Nous pouvons maintenant appeler avec succès la fonction 'bar'.

Résumé :

Lorsque vous rencontrez l'erreur « ImportError : impossible d'importer le nom 'xxx' », vous devez d'abord déterminer s'il existe un problème de référence circulaire. Si tel est le cas, ajustez la position d'importation pour résoudre le problème de référence circulaire. De plus, assurez-vous que le module importé existe et que le module contient le nom dont nous avons besoin. En vérifiant et en ajustant l'emplacement d'importation et en nommant correctement la variable ou la fonction appelée, nous pouvons résoudre cette erreur et importer avec succès le module et le nom requis.

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!

Déclaration:
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