Comment corriger ModuleNotFoundError lors de l'utilisation d'importations relatives en Python ?

DDD
Libérer: 2024-10-29 04:52:29
original
764 Les gens l'ont consulté

 How to Fix ModuleNotFoundError When Using Relative Imports in Python?

Importations relatives en Python : dépannage de ModuleNotFoundError

Lorsque vous travaillez avec plusieurs modules Python, il est courant de rencontrer ModuleNotFoundError. Cette erreur se produit généralement lors de la tentative d'importation d'un module à l'aide d'un chemin d'importation relatif à partir d'un fichier qui n'est pas exécuté dans le cadre d'un package.

Pour comprendre cette erreur, il est important de faire la différence entre les importations relatives et absolues : Les

  • Importations absolues spécifient le chemin complet du module, quel que soit l'emplacement du module actuel.
  • Les importations relatives permettent d'importer des modules par rapport au position actuelle du module dans un package.

Dans l'exemple fourni, test.py tente d'importer config.py en utilisant un chemin d'importation relatif (import config). Cependant, lorsque test.py n'est pas exécuté dans le cadre d'un package (par exemple lorsqu'il est exécuté directement en tant que script), main sera le module actuel, qui n'est pas contenu dans un package.

Par conséquent, un import relatif ne peut pas être utilisé depuis le module main. Au lieu de cela, vous devez utiliser des importations absolues (à partir de la configuration . import). Cependant, utiliser des importations absolues sans ajouter le dossier contenant (ryan) à sys.path entraînera une ModuleNotFoundError.

Pour résoudre ce problème, vous devez soit :

  • Modifier votre répertoire structurez et exécutez le script à partir du répertoire du package, en vous assurant que sys.path inclut le chemin du package.
  • Utilisez une méthode d'importation prenant en compte les packages, comme l'insertion de fichiers __init__.py dans les sous-répertoires qui définissent les packages.

Une fois ces étapes en place, les importations absolues et relatives devraient fonctionner comme prévu.

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