Définition du problème :
Lors d'une tentative d'importation relative à partir d'un fichier Python exécuté en tant que script de niveau supérieur (par exemple, en tapant python myfile.py), un message d'erreur s'affiche : "Tentative d'importation relative dans un non-package. Lorsqu’il est exécuté directement en tant que script, un fichier porte le nom « __main__ ». Lorsqu'il est importé en tant que module à partir d'un autre fichier, son nom reflète la structure de son package (par exemple, "package.subpackage.module").
Restriction d'importation relative :
Relative les importations s'appuient sur le
nom completd'un module pour déterminer sa position dans la hiérarchie des packages. Si le nom d'un module ne contient aucune information sur le package (par exemple, "__main__"), les importations relatives échouent car le module n'est pas considéré comme faisant partie d'un package.
Explication de l'erreur :Lorsque le
nom completd'un module ne contient pas de points, ce qui indique qu'il n'y a aucune association de package, Python l'interprète comme un script autonome et les importations relatives deviennent invalides. Cette erreur se produit lorsque :
Tentative d'importations relatives dans un fichier exécuté directement en tant que script sans l'option "-m".Importation d'un fichier depuis le répertoire actuel où l'interpréteur Python est en cours d'exécution, ce qui peut conduire Python à identifier prématurément le module comme autonome.
Exécuter le script en tant que module : Utilisez python -m package.subpackage.moduleX pour charger le script en tant que module, préservant son association de package et permettant les importations relatives.
À partir de Python 2.6, le "nom" d'un module est influencé à la fois par les attributs name
etCe 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!