Maison > développement back-end > Tutoriel Python > Comment résoudre l'erreur « Tentative d'importation relative au-delà du package de niveau supérieur » de Python ?

Comment résoudre l'erreur « Tentative d'importation relative au-delà du package de niveau supérieur » de Python ?

Barbara Streisand
Libérer: 2024-11-18 07:35:02
original
641 Les gens l'ont consulté

How to Resolve Python's

Erreur d'importation relative Python : dépannage de "Tentative d'importation relative au-delà du package de niveau supérieur"

En Python, les importations relatives vous permettent de référencer des modules dans un package par rapport au répertoire courant. Cependant, tenter une importation relative au-delà du package de niveau supérieur peut entraîner l'erreur « ValueError : tentative d'importation relative au-delà du package de niveau supérieur. »

Considérez la structure de package suivante :

package/
   __init__.py
   A/
      __init__.py
      foo.py
   test_A/
      __init__.py
      test.py
Copier après la connexion

Lors de l'exécution de test.py dans le répertoire du package à l'aide de python -m test_A.test, vous rencontrez l'erreur ci-dessus. La raison en est que Python ne conserve pas d'informations sur le package de niveau supérieur où se trouve test_A.test.

Lors de l'utilisation de from ..A import foo, Python tente d'accéder aux répertoires frères de l'emplacement chargé. Cependant, dans ce cas, il n'y a pas de concept de répertoires frères car le package n'est pas reconnu comme un package.

En revanche, l'exécution de python -m package.test_A.test résout correctement l'importation relative car Python peut identifier le package en tant que package de niveau supérieur et parcourez son répertoire enfant, test_A.

Cependant, le manque de reconnaissance par Python du répertoire de travail actuel en tant que package reste un mystère. Malgré son utilité, cet oubli peut entraîner des erreurs lors de tentatives d'importations relatives à partir du répertoire de niveau supérieur.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal