Gestion des packages Python : creer et utiliser requirements.txt efficacement

Guide complet pour gerer vos dependances Python avec pip. Apprenez a creer un fichier requirements.txt, utiliser les environnements virtuels et maitriser la gestion des packages pour des projets Python professionnels et reproductibles.

Mahmoud DEVO
Mahmoud DEVO
December 27, 2025 7 min read
Gestion des packages Python : creer et utiliser requirements.txt efficacement

Introduction

La gestion des dependances est l’un des aspects les plus critiques du developpement Python professionnel. Que vous travailliez sur un petit script personnel ou sur une application d’entreprise complexe, la capacite a reproduire exactement votre environnement de developpement est essentielle pour la collaboration en equipe, le deploiement en production et la maintenance a long terme.

Sans une gestion rigoureuse des dependances, vous risquez de rencontrer le fameux probleme “Ca marche sur ma machine !” - une situation ou votre code fonctionne parfaitement en local mais echoue mysterieusement sur le serveur de production ou sur l’ordinateur d’un collegue.

Dans cet article, nous allons explorer en profondeur les outils et techniques pour maitriser la gestion des packages Python, avec un focus particulier sur pip, requirements.txt et les environnements virtuels.


Pourquoi la gestion des dependances est cruciale

Avant de plonger dans les aspects techniques, comprenons pourquoi cette competence est indispensable :

  • Reproductibilite : Garantir que votre projet fonctionne de maniere identique sur n’importe quelle machine
  • Isolation : Eviter les conflits entre les dependances de differents projets
  • Collaboration : Permettre a d’autres developpeurs de configurer rapidement leur environnement
  • Deploiement : Faciliter le passage du developpement a la production
  • Securite : Controler les versions pour eviter les vulnerabilites connues

Etape 1 : Mise a jour de pip

Avant toute chose, assurez-vous que pip lui-meme est a jour. Une version obsolete peut causer des incompatibilites :

# Mettre a jour pip vers la derniere version
pip install --upgrade pip

# Verifier la version installee
pip --version

Vous pouvez egalement verifier quels packages installes ont des mises a jour disponibles :

# Lister les packages obsoletes
pip list --outdated

# Format tableau pour une meilleure lisibilite
pip list --outdated --format=columns

Etape 2 : Creation d’un environnement virtuel

Un environnement virtuel isole les dependances de chaque projet. C’est une pratique obligatoire pour tout projet serieux :

# Creer un environnement virtuel
python -m venv venv

# Activer l'environnement (Linux/macOS)
source venv/bin/activate

# Activer l'environnement (Windows)
venv\Scripts\activate

# Verifier que l'environnement est actif
which python  # Doit pointer vers venv/bin/python

Une fois active, votre invite de commande affiche generalement le nom de l’environnement entre parentheses :

(venv) $ pip install requests

Pour desactiver l’environnement :

deactivate

Etape 3 : Creation du fichier requirements.txt

Le fichier requirements.txt est le standard de facto pour declarer les dependances Python :

# Generer requirements.txt avec toutes les dependances
pip freeze > requirements.txt

# Generer uniquement les packages installes localement (pas les globaux)
pip freeze --local > requirements.txt

Exemple de contenu d’un fichier requirements.txt :

requests==2.31.0
flask==3.0.0
sqlalchemy==2.0.23
python-dotenv==1.0.0
gunicorn==21.2.0

Syntaxe avancee de requirements.txt

Vous pouvez utiliser differentes syntaxes pour specifier les versions :

# Version exacte
requests==2.31.0

# Version minimale
requests>=2.31.0

# Plage de versions
requests>=2.28.0,<3.0.0

# Version compatible (meme version majeure)
requests~=2.31.0

# Installer depuis un depot Git
git+https://github.com/user/repo.git@v1.0.0

# Installer un package en mode editable (developpement)
-e ./mon-package-local

# Inclure un autre fichier requirements
-r requirements-dev.txt

Etape 4 : Installation des dependances

Pour installer les dependances sur une nouvelle machine :

# Creer et activer l'environnement virtuel
python -m venv venv
source venv/bin/activate

# Installer toutes les dependances
pip install -r requirements.txt

# Installer avec mise a niveau des dependances existantes
pip install --upgrade -r requirements.txt

Etape 5 : Gestion de plusieurs versions Python

Si vous avez plusieurs versions de Python installees :

# Utiliser pip pour une version specifique
python3.11 -m pip install requests
python3.12 -m pip install requests

# Ou avec les alias pip
pip3.11 install requests
pip3.12 install requests

# Creer un environnement avec une version specifique
python3.11 -m venv venv311
python3.12 -m venv venv312

Etape 6 : Separation des dependances dev/prod

Il est recommande de separer les dependances de developpement et de production :

# requirements.txt - Dependances de production
flask==3.0.0
gunicorn==21.2.0
sqlalchemy==2.0.23
# requirements-dev.txt - Dependances de developpement
-r requirements.txt
pytest==7.4.3
black==23.12.0
flake8==6.1.0
mypy==1.7.1

Installation selon l’environnement :

# Production
pip install -r requirements.txt

# Developpement
pip install -r requirements-dev.txt

Bonnes Pratiques

1. Toujours utiliser un environnement virtuel

Ne jamais installer de packages dans l’environnement Python global. Chaque projet doit avoir son propre environnement isole.

2. Epingler les versions exactes

Utilisez des versions exactes (==) plutot que des plages pour garantir la reproductibilite :

# Bon
requests==2.31.0

# A eviter en production
requests>=2.31.0

3. Mettre a jour regulierement et tester

Planifiez des mises a jour regulieres de vos dependances et testez systematiquement :

# Verifier les mises a jour disponibles
pip list --outdated

# Mettre a jour un package specifique
pip install --upgrade requests

# Regenerer requirements.txt apres mise a jour
pip freeze > requirements.txt

4. Utiliser pip-tools pour une gestion avancee

pip-tools offre une gestion plus fine des dependances :

pip install pip-tools

# Creer requirements.in avec vos dependances directes
echo "flask" > requirements.in
echo "requests" >> requirements.in

# Compiler avec toutes les sous-dependances resolues
pip-compile requirements.in

# Synchroniser l'environnement
pip-sync requirements.txt

5. Versionner votre fichier requirements.txt

Incluez toujours requirements.txt dans votre depot Git pour que chaque membre de l’equipe utilise les memes versions.


Pieges Courants a Eviter

1. Oublier d’activer l’environnement virtuel

Un piege classique qui installe les packages globalement :

# FAUX - environnement non active
pip install requests  # Installe globalement !

# CORRECT
source venv/bin/activate
pip install requests

2. Utiliser requirements.txt sans environnement virtuel

Le pip freeze capture tous les packages globaux, polluant votre fichier :

# Dans un environnement global - MAUVAIS
pip freeze > requirements.txt  # Contient des dizaines de packages inutiles

# Dans un environnement virtuel propre - BON
python -m venv venv
source venv/bin/activate
pip install flask requests
pip freeze > requirements.txt  # Contient uniquement flask, requests et leurs deps

3. Ne pas specifier les versions

Sans versions epinglees, votre projet peut casser lors d’une mise a jour automatique :

# DANGEREUX
requests
flask

# SECURISE
requests==2.31.0
flask==3.0.0

4. Ignorer les conflits de dependances

Pip affiche des avertissements de conflit - ne les ignorez pas :

# Verifier les incompatibilites
pip check

# Resoudre les conflits manuellement ou avec pip-tools

Outils complementaires

Pour les projets plus complexes, considerez ces alternatives modernes :

OutilAvantages
PoetryGestion des dependances et packaging unifie
PipenvCombine pip et virtualenv avec Pipfile
pip-toolsCompilation et synchronisation des dependances
condaIdeal pour le data science et les packages binaires

Conclusion

La maitrise de la gestion des dependances Python est une competence fondamentale pour tout developpeur. En suivant les bonnes pratiques presentees dans cet article - utilisation systematique d’environnements virtuels, epinglage des versions, separation dev/prod - vous construirez des projets robustes, reproductibles et faciles a maintenir.

Les points cles a retenir :

  1. Toujours creer un environnement virtuel pour chaque projet
  2. Toujours epingler les versions exactes dans requirements.txt
  3. Toujours versionner vos fichiers de dependances dans Git
  4. Regulierement verifier et mettre a jour vos dependances
  5. Envisager des outils comme pip-tools ou Poetry pour les projets complexes

Avec ces pratiques en place, vous eliminerez les problemes de “Ca marche sur ma machine” et faciliterez grandement la collaboration au sein de votre equipe.

Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles