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
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!