Comment importer des fichiers à partir de sous-répertoires en Python : pourquoi ai-je besoin de « __init__.py » ?

Susan Sarandon
Libérer: 2024-11-19 18:37:03
original
816 Les gens l'ont consulté

How to Import Files from Subdirectories in Python: Why Do I Need `__init__.py`?

Importation de fichiers à partir de sous-répertoires

Dans le domaine de la programmation Python, il est essentiel d'organiser votre code efficacement. Les sous-répertoires constituent un moyen efficace de maintenir la modularité, mais lorsqu'il s'agit d'importer des fichiers à partir de ces sous-répertoires, vous pouvez rencontrer des obstacles imprévus.

Considérez le scénario suivant : vous disposez d'un fichier nommé tester.py situé dans le répertoire / répertoire du projet. Dans le répertoire /project se trouve un sous-répertoire appelé lib, qui héberge un autre fichier nommé BoxTime.py. Votre objectif est d'importer BoxTime dans le script tester.py.

Rencontre d'une erreur d'importation

Votre première approche consiste à importer BoxTime à l'aide de la commande suivante :

import lib.BoxTime
Copier après la connexion

Cependant , cette tentative se heurte à un message d'erreur :

Traceback (most recent call last):
  File "./tester.py", line 3, in <module>
    import lib.BoxTime
ImportError: No module named lib.BoxTime
Copier après la connexion

Sans vous décourager, vous recherchez une solution pour combler le fossé entre votre script principal et le fichier niché dans le sous-répertoire.

Dévoilement du mystère

La résolution réside dans la documentation des packages (Section 6.4). Selon la documentation, Python nécessite qu'un fichier vide nommé __init__.py soit présent dans le sous-répertoire.

Dans le cas de notre exemple, vous devrez créer un fichier __init__.py vide dans le répertoire lib. Cet ajustement subtil permet à Python de reconnaître le sous-répertoire en tant que package et vous permet d'importer vos fichiers de manière transparente.

Alors, ne négligez pas l'importance du fichier __init__.py. Il sert de contrôleur d'accès, facilitant l'importation de fichiers à partir de sous-répertoires.

Considérations supplémentaires

Bien que la création d'un fichier __init__.py vide résolve le problème initial, il y a un autre aspect à prendre en compte lors de l'importation de fichiers depuis sous-répertoires. Python vous demande de faire précéder le nom du module avec le chemin du répertoire, tel que lib.BoxTime.

Vous pouvez également attribuer un alias au module en utilisant la syntaxe suivante :

import lib.BoxTime as BT
Copier après la connexion

Ceci vous permet d'appeler le module facilement en utilisant l'alias BT, comme dans BT.bt_function().

Suivez ces directives et vous surmontez vos problèmes d'importation en garantissant une intégration transparente des fichiers des sous-répertoires dans vos projets Python.

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