Maison >développement back-end >Tutoriel Python >Comment puis-je facilement importer des modules à partir de packages frères et sœurs en Python ?

Comment puis-je facilement importer des modules à partir de packages frères et sœurs en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 21:13:19352parcourir

How Can I Easily Import Modules from Sibling Packages in Python?

Importations de packages frères et sœurs

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.

Étapes impliquées

1. Créez un fichier pyproject.toml

À 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"]

2 . Activer un environnement virtuel (facultatif)

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
  • Activer l'environnement virtuel :
  • Linux et macOS : source ./venv/bin/activate
  • Windows : .venvScriptsactivate

3. Installez votre package dans un état modifiable

À 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

Example Usage

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!

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