Maison > développement back-end > Tutoriel Python > Comment importer à partir de packages frères et sœurs sans utiliser les hacks « sys.path » ?

Comment importer à partir de packages frères et sœurs sans utiliser les hacks « sys.path » ?

Linda Hamilton
Libérer: 2024-12-08 15:56:13
original
253 Les gens l'ont consulté

How to Import from Sibling Packages Without Using `sys.path` Hacks?

Importations de packages frères et sœurs : une solution pour éviter les piratages de sys.path

L'importation à partir de packages frères et sœurs peut poser un défi lors de l'organisation de votre base de code. Bien que les hacks sys.path.append offrent une solution de contournement, il existe une solution plus élégante qui élimine le besoin de ces insertions intrusives.

Étapes :

  1. Créez un pyproject.toml Fichier :
    Définissez les métadonnées et les dépendances de votre package dans un pyproject.toml fichier.
  2. Utilisez un environnement virtuel :
    Isolez votre projet des dépendances du système en créant un environnement virtuel.
  3. Installez votre projet dans un état modifiable :
    Utilisez pip et l'indicateur -e pour installer votre package dans un état modifiable, en vous assurant que les modifications sont automatiquement reflété.
  4. Modifier les importations :
    Préparer mon projet. aux importations qui échouaient auparavant, par exemple à partir de myproject.api import function_name.

Exemple :

Considérez le fichier suivant structure :

  • api/api.py
  • examples/example_one.py
  • tests/test _one.py
  • pyproject.toml

api.py :

def function_from_api():
    return 'I am the return value from api.api!'
Copier après la connexion

test_one.py :

from myproject.api.api import function_from_api

def test_function():
    print(function_from_api())

if __name__ == '__main__':
    test_function()
Copier après la connexion

À exécutez test_one.py, assurez-vous que mon projet est installé dans un état modifiable. Ensuite, exécutez :

python myproject/tests/test_one.py
Copier après la connexion

Vous devriez voir le résultat : "Je suis la valeur de retour d'api.api!".

Conclusion :

Cette méthode vous permet pour importer à partir de packages frères sans recourir à des solutions hacky comme sys.path.append. En tirant parti de pyproject.toml et des installations modifiables, vous pouvez conserver une base de code propre et modulaire tout en facilitant l'extensibilité et les tests.

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