Lorsque vous commencez à travailler avec Python, vous entendez souvent parler de env et venv, deux notions qui peuvent sembler un peu mystérieuses au début.
Pourtant, elles sont essentielles pour gérer vos projets de manière propre et organisée.
Dans ce tutoriel, nous allons vous expliquer ce que sont env et venv, à quoi ils servent, quels sont leurs avantages et limites, et surtout comment les utiliser correctement. Nous verrons également un exemple concret pour que vous puissiez pratiquer et comprendre leur utilité dans un projet Python.
Qu’est-ce que env et venv ?
Avant tout, il est important de comprendre que env
et venv
sont liés à la gestion des environnements Python. Un environnement Python est simplement un espace isolé où vous pouvez installer des bibliothèques et exécuter vos scripts sans interférer avec d’autres projets ou avec Python installé globalement sur votre ordinateur.
env
env
est une commande qui vous permet d’exécuter un programme Python en utilisant l’interpréteur Python approprié. En pratique, vous l’utilisez souvent au début de vos scripts Python pour indiquer quel interpréteur doit être utilisé pour exécuter le fichier.
Par exemple, la ligne suivante en haut d’un fichier Python :
#!/usr/bin/env python3
Ce shebang signifie : « utilisez l’interpréteur Python 3 installé sur ce système pour exécuter ce script ». C’est très utile si vous travaillez sur différents systèmes ou si plusieurs versions de Python sont installées.
venv
venv
est un module intégré à Python depuis la version 3.3 qui permet de créer des environnements virtuels. Contrairement à env, venv
ne se limite pas à indiquer l’interpréteur Python ; il crée un environnement isolé complet, où vous pouvez installer des bibliothèques spécifiques à votre projet sans affecter les autres projets ni la version globale de Python. Cela permet de gérer facilement des projets avec des dépendances différentes.
Pourquoi utiliser env et venv ?
L’utilisation de env et venv peut sembler compliquée au début, mais elle offre des avantages significatifs, surtout pour les développeurs qui travaillent sur plusieurs projets.
Avantages de env
env
est pratique pour rendre vos scripts Python portables. Vous n’avez pas à vous soucier de la version exacte de Python installée sur chaque machine. En utilisant env dans votre script, vous vous assurez que le script trouvera l’interpréteur Python correct, qu’il s’agisse de Python 2 ou Python 3. Cela simplifie le déploiement de scripts sur différentes machines.
Avantages de venv
L’utilisation de venv est encore plus stratégique pour la gestion des projets. Chaque projet peut avoir son environnement virtuel avec les versions exactes des bibliothèques nécessaires. Vous évitez ainsi les conflits de dépendances entre projets. Par exemple, si un projet nécessite Django 4 et un autre Django 3, venv permet de gérer ces deux projets sans problème.
En résumé, env assure la portabilité du script, tandis que venv garantit l’isolation des projets et la gestion des dépendances.
Limites de env et venv
Bien qu’extrêmement utiles, env et venv ont aussi certaines limites.
Pour env, la principale limite est qu’il ne résout pas les problèmes de dépendances. Il indique simplement quel Python utiliser, mais si votre script nécessite des bibliothèques spécifiques, vous devrez les installer vous-même, et cela peut causer des conflits entre projets.
Pour venv, la limite réside surtout dans la complexité de la gestion lorsque vous avez de très nombreux projets ou si vous utilisez des outils plus avancés comme Conda, qui offre des fonctionnalités supplémentaires pour les environnements complexes ou les projets scientifiques. De plus, venv ne gère que Python, donc si votre projet dépend d’autres langages ou services externes, vous devrez les configurer séparément.
Comment utiliser env et venv sur le terminal
Maintenant que vous comprenez ce que sont env et venv et leurs avantages, il est temps de passer à la pratique. Nous allons détailler les étapes pour créer et utiliser un environnement virtuel avec venv et comment utiliser env dans vos scripts Python.
Créer un environnement virtuel avec venv
La création d’un environnement virtuel est simple. Dans le terminal, placez-vous dans le dossier de votre projet, puis tapez la commande suivante :
python3 -m venv mon_env
Ici, mon_env
est le nom que vous donnez à votre environnement virtuel. Vous pouvez choisir n’importe quel nom, mais il est conseillé de garder quelque chose de clair et lié à votre projet. Cette commande crée un dossier mon_env
contenant un Python isolé et un dossier bin
ou Scripts
selon votre système, ainsi qu’un dossier lib
avec les bibliothèques installées dans cet environnement.
Activer l’environnement virtuel
Avant d’utiliser cet environnement, il faut l’activer. L’activation permet de faire en sorte que toutes les commandes Python ou pip s’exécutent dans cet environnement et non sur l’installation globale de Python.
Sur Linux ou MacOS, tapez :
source mon_env/bin/activate
Sur Windows, la commande est :

Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?mon_env\Scripts\activate
Une fois activé, vous verrez le nom de votre environnement entre parenthèses dans le terminal, par exemple (mon_env)
, ce qui indique que vous êtes bien dans l’environnement virtuel.
Installer des bibliothèques dans venv
Maintenant que l’environnement est activé, vous pouvez installer les bibliothèques spécifiques à votre projet. Par exemple, pour installer Flask, vous tapez :
pip install flask
Cette installation ne touchera pas à votre Python global ni aux autres projets. Vous pouvez également vérifier les bibliothèques installées avec :
pip list
Désactiver l’environnement virtuel
Lorsque vous avez terminé de travailler, vous pouvez désactiver l’environnement pour revenir à Python global avec la commande :
deactivate
C’est très simple et cela vous permet de travailler sur plusieurs projets avec des environnements isolés sans interférence.
Utiliser env dans un script Python
Pour rendre un script Python portable, vous pouvez utiliser env dans le shebang, qui est la première ligne du fichier Python. Par exemple :
#!/usr/bin/env python3
Cette ligne indique au système : « utilisez l’interpréteur Python 3 disponible sur cette machine pour exécuter ce script ». Vous pouvez ensuite rendre votre script exécutable sur Linux ou MacOS avec CHMOD :
chmod +x mon_script.py
Et l’exécuter directement :
./mon_script.py
Cette méthode fonctionne très bien si vous partagez votre script avec d’autres utilisateurs ou si vous devez l’exécuter sur différentes machines sans savoir exactement où Python est installé.
Cas pratique : créer un projet Python isolé
Imaginons que vous voulez créer un projet web simple avec Flask, mais vous avez plusieurs projets Python sur votre machine. Pour éviter les conflits de bibliothèques, voici les étapes concrètes :
- Ouvrez votre terminal et créez un dossier pour votre projet.
mkdir
va créer le dossier etcd
vous placer dans ce dossier :
mkdir mon_projet_flask
cd mon_projet_flask
- Créez un environnement virtuel :
python3 -m venv env
- Activez l’environnement :
source env/bin/activate # Linux/MacOS
env\Scripts\activate # Windows
- Installez Flask dans cet environnement :
pip install flask
- Créez un fichier
app.py
avec le contenu suivant :
#!/usr/bin/env python3
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Bonjour depuis Flask !"
if __name__ == '__main__':
app.run(debug=True)
- Rendez le script exécutable si vous êtes sur Linux/MacOS :
chmod +x app.py
- Lancez votre application :
python app.py
Vous verrez alors votre application Flask tourner dans un environnement isolé. Si un autre projet nécessite une autre version de Flask, cela ne posera aucun problème grâce à venv.
Conseils pratiques pour env et venv
Nous voilà arrivés au terme de ce guide complet sur env et venv. Vous avez désormais une vision claire de ce que ces outils sont, pourquoi ils sont essentiels et comment les utiliser dans vos projets Python. Pour résumer, env et venv répondent à deux besoins complémentaires : l’un assure la portabilité de vos scripts (env
), l’autre garantit l’isolation de vos projets (venv
).
Récapitulatif pratique
Si vous commencez un projet Python, voici les étapes à suivre pour tirer le meilleur parti de ces outils :
- Créer un dossier pour votre projet afin de centraliser tous les fichiers et éviter le désordre.
- Créer un environnement virtuel avec venv pour isoler vos dépendances et éviter les conflits avec d’autres projets.
- Activer l’environnement avant toute installation de bibliothèque ou exécution de script.
- Installer uniquement les bibliothèques nécessaires pour ce projet dans l’environnement virtuel.
- Ajouter env dans vos scripts via le shebang pour garantir que le bon interpréteur Python sera utilisé sur n’importe quelle machine.
- Désactiver l’environnement lorsque vous avez terminé de travailler pour revenir à votre Python global.
- Répéter ces étapes pour chaque projet, en créant un environnement dédié à chaque fois.
En suivant cette méthode, vous éviterez les erreurs de version, les conflits de dépendances et vous gagnerez en productivité. Vous pourrez ainsi travailler sur plusieurs projets Python en parallèle sans aucune inquiétude.
Conseils supplémentaires
Il est recommandé de toujours versionner votre fichier requirements.txt
qui liste les bibliothèques installées dans votre venv. Vous pouvez le générer avec :
pip freeze > requirements.txt
Et le réinstaller dans un nouvel environnement avec :
pip install -r requirements.txt
Cela facilite le partage de projets avec d’autres développeurs ou le déploiement sur un serveur.
Gardez à l’esprit que même si venv est très pratique pour gérer vos projets Python, il ne remplace pas un gestionnaire plus complet comme Conda si vous travaillez sur des projets scientifiques complexes nécessitant des bibliothèques externes. Cependant, pour la majorité des projets Python classiques, venv et env sont suffisants et constituent une base solide pour une bonne organisation.
En résumé, maîtriser env et venv vous permet de travailler proprement, d’assurer la portabilité de vos scripts et de gérer vos projets Python sans conflits. C’est une compétence essentielle pour tout développeur Python, débutant ou confirmé, et un excellent moyen de rendre votre travail plus professionnel et efficace.