Перейти к содержимому

Imports circulaires : Comment s'en sortir définitivement ?

HexaPython

0:00 / 0:00

Imports circulaires : Comment s'en sortir définitivement ?

96 просмотров · 9 дней назад
HexaPython
328 подписчиков
96 просмотров · 9 дней назад
⚡ Tes fichiers sont bien rangés. Mais sais-tu ce que Python fait vraiment quand tu écris import ? Épisode 5 de la SAISON 2 d'HexaPython : les modules, niveau intermédiaire. Le cache des modules et sys.modules, l'objet unique partagé en mémoire, _init__.py comme interface publique, __all_ et __version__, l'import circulaire et ses trois sorties, les imports absolus et relatifs, la bibliothèque standard, pip et l'environnement virtuel, pip freeze et requirements.txt, lancer ton paquet avec python -m, le rendre installable avec pip install -e, et charger un module par son nom avec importlib. On termine par un mini-projet : le paquet météo avec une vraie interface publique. 🚀 RELÈVE LE DÉFI DE LA VIDÉO ! 1. Écris le _init__.py de ton paquet et déclare son __all_ 2. Renomme tes fonctions internes avec un _ et ajoute un _version_ 3. Affiche sys.modules juste après un import 4. Provoque un import circulaire, puis casse-le proprement 5. Crée un venv et fige tes dépendances avec pip freeze 6. Ajoute un __main__.py et lance ton paquet avec python -m 👉 Poste l'arborescence de ton paquet en commentaire ! ━━━━━━━━━━━━━━━━━━━━ ⏱ CHAPITRES ━━━━━━━━━━━━━━━━━━━━ 00:00 Introduction 01:15 Au programme de l'épisode 02:09 Les 4 symptômes du fichier trop gros 02:54 Le cache des modules : sys.modules 03:49 __init__.py : l'interface publique 05:09 L'import circulaire et ses 3 solutions 06:06 La bibliothèque standard : ce qui est déjà là 06:45 Lancer ton paquet avec python -m 07:51 Import absolu ou import relatif 08:45 pip : installer des paquets 09:35 venv : l'environnement virtuel 10:29 pip freeze et rechargement à chaud 11:21 L'aide-mémoire à capturer 13:09 Rendre ton paquet installable (pip install -e) 14:09 Importer un module par son nom (importlib) 15:26 Les 4 pièges classiques 16:35 Un module de configuration 17:21 pathlib et json 18:10 Mini-projet : l'interface du paquet météo 18:53 Vérification dans l'interpréteur 19:40 Ton défi de la semaine 20:27 Résumé et épisode 6 🛠️ LES LIENS UTILES POUR CETTE VIDÉO : 👉 Modules et paquets (doc officielle) : https://docs.python.org/fr/3/tutorial... 👉 Le système d'import en détail : https://docs.python.org/fr/3/referenc... 👉 importlib : https://docs.python.org/fr/3/library/... 👉 Environnements virtuels avec venv : https://docs.python.org/fr/3/library/... 👉 Empaqueter et installer son projet (pyproject.toml) : https://packaging.python.org/en/lates... 💻 Besoin d'un hébergement pour vos projets Python, sites web ou applications ? Bénéficiez de 20 % de réduction avec mon lien Hostinger et soutenez la chaîne sans frais supplémentaires. 🚀 Hostinger (-20 % sur votre premier plan) : https://www.hostinger.com/fr?REFERRAL... ❤️ Merci à tous ceux qui utilisent ce lien, cela m'aide à continuer à produire des tutoriels Python gratuits et de qualité. --- 💡 CE QUE TU AS APPRIS AUJOURD'HUI (AIDE-MÉMOIRE) : • Un module n'est exécuté qu'une seule fois : Python range le résultat dans sys.modules et le resert à tout le monde. • Deux imports du même module, même sous des alias différents, désignent le même objet en mémoire. • _init__.py décide de ce que les autres voient ; __all_ déclare l'interface publique que tu t'engages à ne pas casser. • Un import circulaire ne se contourne pas, il se casse : extrais le commun dans un troisième module. • L'import absolu se lit sans contexte ; le relatif ne marche pas dans un fichier lancé directement. • Un venv par projet, et un requirements.txt pour réinstaller le même socle partout. • python -m ton_paquet place la racine du projet au bon endroit : tes imports absolus fonctionnent du premier coup. • pip install -e . rend ton paquet importable depuis n'importe où, sans jamais bricoler sys.path. ⚠️ Tu modifies ton module et rien ne change dans ta console ? Il est déjà en cache 👀 --- 🎓 À PROPOS DE HEXAPYTHON : HexaPython est ta ressource francophone pour maîtriser le développement avec Python. Reconversion, automatisation de tâches, ou simple curiosité : des formats clairs, dynamiques et sans jargon inutile. Prochain épisode : les fichiers — lire et écrire du JSON et du CSV. Active la cloche 🔔 pour ne pas rater la suite ! Un pouce bleu 👍, un commentaire et un partage aident énormément la chaîne 🙏 #Python #PythonIntermediaire #Modules #PackagePython #InitPy #ImportCirculaire #Venv #Pip #HexaPython #Programmation #Tutoriel