Maison >développement back-end >Tutoriel Python >Comment puis-je importer un module à partir d'un dossier imbriqué en Python ?

Comment puis-je importer un module à partir d'un dossier imbriqué en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 09:10:45547parcourir

How Can I Import a Module from a Nested Folder in Python?

Importation de modules à partir de dossiers imbriqués

L'importation de fichiers à partir de différents dossiers au sein d'un projet peut être difficile en Python. Explorons un scénario et sa solution.

Question :

Considérez la structure de dossiers suivante :

application
├── app
│   └── folder
│       └── file.py
└── app2
    └── some_folder
        └── some_file.py

Comment importer une fonction nommée func_name de file.py dans some_file.py?

Réponse :

L'approche typique consistant à utiliser from application.app.folder.file import func_name ne fonctionnera pas. En effet, le chemin de recherche d'importation par défaut de Python n'inclut pas de sous-répertoires.

Solution :

Pour contourner cette limitation, vous pouvez modifier le chemin de recherche Python au moment de l'exécution en ajoutant le répertoire souhaité dans sys.path avant d'importer le module. Voici un exemple dans some_file.py :

import sys
# Caution: path[0] is reserved for the script path or '' in REPL
sys.path.insert(1, '/path/to/application/app/folder')

import file

Cela vous permettra d'accéder à la fonction depuis le module importé comme :

file.func_name()

Remarque :

Cette approche est destinée à des scénarios très spécifiques. En règle générale, structurer votre code en packages est une solution privilégiée pour la modularité et la maintenabilité.

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!

Déclaration:
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