Maison >développement back-end >Tutoriel Python >Comment éviter les piratages de « sys.path » lors de l'importation à partir de packages frères et sœurs ?
L'importation de modules à partir de packages frères peut souvent poser des problèmes lors de l'exécution de scripts à partir de la ligne de commande. Pour atténuer ces difficultés, nous présentons une solution alternative qui élimine le besoin de hacks maladroits de sys.path.insert.
Nous allons regroupez notre code dans un seul dossier et structurez-le comme suit :
<br>└── monprojet</p> <pre class="brush:php;toolbar:false">├── api │ ├── api_key.py │ ├── api.py │ └── __init__.py ├── examples │ ├── example_one.py │ ├── example_two.py │ └── __init__.py ├── LICENCE.md ├── README.md └── tests ├── __init__.py └── test_one.py
De plus, nous allons créer un pyproject. toml dans le dossier racine pour décrire le package.
Pour rendre notre package disponible pour les importations, nous allons l'installer dans un état modifiable en utilisant pip: p>
pip install -e .
Lors de l'importation de modules à partir de notre package, nous préfixerons l'importation avec monprojet., comme démontré dans test_one.py :< ;/p>
depuis l'importation de monprojet.api.api function_from_api
Notez que ce préfixe est nécessaire uniquement pour les importations qui ne fonctionneraient pas sans le fichier pyproject.toml et l'installation pip.
Avec toute la configuration nécessaire en place, nous pouvons exécuter notre script à partir de la ligne de commande :
python .myprojectteststest_one.py
Cela devrait afficher le résultat attendu :
Je suis la valeur de retour de api.api!
En incorporant ces étapes, nous avons résolu efficacement le problème des importations de packages frères et pouvons désormais exécuter des scripts à partir du ligne de commande sans recourir aux hacks sys.path.
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!