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

1.5 Hello World o/

Premier script

def main():
    print("Hello WWorld o/")

if __name__ == "__main__":
    main()

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 : Vous pouvez ajouter des dossiers personnalisés à cette liste via la variable d'environnement système 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()
On utilise 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.

Chapitre suivant : Syntaxe et Typage