Maison >développement back-end >Tutoriel Python >Comment puis-je facilement importer des modules à partir de packages frères et sœurs en Python ?
Lorsque vous travaillez avec des packages Python, l'importation de modules à partir de packages frères peut parfois être un défi. Les méthodes traditionnelles impliquant la manipulation de sys.path peuvent être lourdes et sujettes aux erreurs. Voici une solution qui exploite les outils d'empaquetage modernes de Python pour une approche plus simple.
À la racine du répertoire de votre projet, créez un fichier pyproject.toml avec le contenu minimal suivant :
[project] name = "myproject" version = "0.1.0" description = "My small project" [build-system] build-backend = "flit_core.buildapi" requires = ["flit_core >=3.2,<4"]
Bien que cela ne soit pas essentiel, l'activation d'un environnement virtuel peut garantir que les dépendances spécifiques à votre projet sont isolées de l'environnement Python global. Pour créer et activer un environnement virtuel :
Créer l'environnement virtuel :
python -m venv venv
À la racine du répertoire de votre projet, installez votre package en utilisant pip avec l'indicateur -e pour activer le mode modifiable :
pip install -e .
< h3>4. Importer des modules avec des préfixes de packages frères
Pour importer des modules à partir de packages frères, ajoutez le nom du package comme préfixe dans vos importations. Par exemple, pour importer un module nommé api à partir d'un package frère, vous utiliserez :
from myproject.api import api_module
Considérez la structure de projet suivante :
- api - api.py - examples - example_one.py - tests - test_one.py
Avec la solution proposée, vous pouvez importer le module api depuis example_one.py et test_one.py comme suit :
example_one.py:
from myproject.api import api_module
test_one.py:
from myproject.api import api_module def test_function(): print(api_module.function_from_api()) if __name__ == '__main__': test_function()
L'exécution de test_one.py appellera désormais avec succès la fonction function_from_api() dans l'API module.
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!