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