Importations relatives en Python
Comprendre les importations relatives en Python est crucial pour éviter l'erreur « Tentative d'importation relative dans un non-package ».
Script vs Module
Une distinction clé découle de la méthode de chargement d'un fichier Python. Lorsqu'il est exécuté directement en tant que script, son nom est défini sur __main__. À l'inverse, s'il est importé, son nom inclut les informations sur le package.
Conventions de dénomination
Par exemple, si moduleX dans package/subpackage1/moduleX.py est importé, son nom devient package.subpackage1.moduleX. Cependant, s'il est exécuté directement, son nom est __main__.
Importations relatives
Les importations relatives s'appuient sur le nom d'un module pour déterminer sa hiérarchie de packages. Les modules dont les noms ne contiennent aucun point ne sont pas considérés comme faisant partie d'un package.
Cause de l'erreur
L'erreur se produit lorsque des importations relatives sont tentées dans des modules dont les noms indiquent qu'ils sont ne sont pas dans un paquet (c'est-à-dire que leurs noms manquent de points). Cela inclut les scripts (puisque main n'a pas de points) et les modules chargés directement à partir du répertoire actuel (où Python ajoute le répertoire actuel à son chemin de recherche).
Solutions
Notes
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!