1.1 L'Environnement de Combat
Avant de coder le projet pyCycloneFlow, nous devons maîtriser l'écosystème Python. Isoler son projet n'est que la première étape.
1. L'Isolation : Venv et PIP
Créez votre atelier dans votre dossier pyCycloneFlow/ :
# Création
python -m venv venv
# Activation (Windows)
venv\Scripts\activate
# Activation (macOS/Linux)
source venv/bin/activate
1.4 Git
Si vous utilisez git, penser à ajouter ceci au .gitignore:
# Python cache
**/__pycache__/
*.py[cod]
*$py.class
*.py[cod]→ Ignore les fichiers compilés Python.*$py.class→ Ignore les fichiers générés par Jython.
1.5 Hello World o/
Premier script
def main():
print("Hello WWorld o/")
if __name__ == "__main__":
main()
def main():→ Encapsule le code principal. C'est une bonne pratique qui facilite la lecture et l'importation future du script.if __name__ == "__main__":→ Le "Guard" indispensable. Il vérifie si le script est exécuté directement. Si le fichier est importé comme module ailleurs, ce bloc est ignoré.
2. Le Module Search Path : sys.path
Comment Python trouve-t-il vos fichiers ou les bibliothèques installées ? Il parcourt une liste de répertoires appelée le Module Search Path.
import sys
# Affiche la liste des dossiers où Python cherche les modules
print(sys.path)
PYTHONPATH.
C'est l'équivalent en php de include-path
3. Mise à jour des paquets
Pour mettre à jour tous les paquets obsolètes d'un environnement, on utilise un petit script avec: subprocess et sys — deux modules de la bibliothèque standard.
import subprocess
import sys
def upgrade_all():
# Récupère la liste des paquets obsolètes au format "nom==ancienne_version"
result = subprocess.run(
[sys.executable, "-m", "pip", "list", "--outdated", "--format=freeze"],
capture_output=True, text=True
)
packages = [line.split("==")[0] for line in result.stdout.splitlines()]
if not packages:
print("Tout est à jour.")
return
for pkg in packages:
print(f"Mise à jour : {pkg}")
subprocess.run([sys.executable, "-m", "pip", "install", "--upgrade", pkg])
if __name__ == "__main__":
upgrade_all()
sys.executable plutôt que "pip" directement pour garantir qu'on cible le bon interpréteur — celui du venv actif.
4. La structure : __init__.py
N'oubliez jamais de créer un fichier vide __init__.py dans vos dossiers de code (ex: tests/). Il transforme le dossier en Package, permettant à Python d'importer son contenu.