Quand on travaille sur plusieurs projets Python, un environnement virtuel permet d’isoler les dépendances de votre projet du reste de votre système. En créant un environnement dédié, vous vous assurez que les bibliothèques installées pour ce projet n’affectent pas les autres (et vice-versa). Python fournit pour cela le module venv qui permet de créer un environnement virtuel dans un dossier donné.
sudo apt install python3-venv -ySi vous utilisez une sandbox Docker créée à partie du cours "Configuration d’une sandbox Ubuntu avec Docker",
sudone devra pas être utilisé dans la commande.
-
Ouvrez votre terminal.
-
Créez un nouveau répertoire pour le projet :
mkdir holbertonschool-test_github_api- Accédez au répertoire nouvellement créé :
cd holbertonschool-test_github_apipython3 -m venv venvCette commande crée un dossier venv/ contenant une copie de l’interpréteur Python et de pip.
Le -m indique que l’on exécute le module nommé venv et pas un fichier script de base.
Il est courant de nommer le dossier de l’environnement virtuel
.venv(avec un point au début du nom). Cette convention a deux avantages : le dossier est caché par défaut dans l’explorateur de fichiers, et il est automatiquement ignoré par certains outils ou frameworks. Dans notre exemple, nous ne mettons pas le point pour vous permettre d'accéder facilement au dossier et de l'explorer si la curiosité vous en dit.
Linux / macOS :
source venv/bin/activateWindows (PowerShell) :
.\venv\Scripts\Activate.ps1Une fois activé, vous verrez le préfixe (venv) devant votre invite de commande : cela confirme que vous travaillez dans l’environnement isolé.
Après création de l’environnement, il est souvent utile de mettre à jour pip :
pip install --upgrade pipNe versionnez pas le dossier d’environnement virtuel
venvdans votre dépôt Git. Pensez à ajouter le nom de ce dossier (par exemplevenv/ou.venv/) dans le fichier.gitignorede votre projet afin qu’il soit ignoré par le contrôle de version. Vous pouvez notamment utiliser le fichier.gitignoreofficiel pour Python proposé par GitHub (qui inclut déjà l’exclusion de.venv) comme point de départ.
Dans notre exemple, nous allons tester la réponse de l'API GitHub, pour ce faire nous avons besoin du module requests:
pip install requestsIci, le package requests sera disponible uniquement dans l'environnement venv.
- Créez un fichier
test_github_api.pyà la racine du projet avec ce contenu :
import requests
try:
response = requests.get("https://api.github.com")
if response.status_code == 200:
print("✅ Succès : l'API GitHub a répondu correctement.")
elif response.status_code == 403:
print("⚠️ Erreur 403 : accès interdit. Vérifiez si vous êtes bloqué ou rate limité.")
elif response.status_code == 404:
print("❌ Erreur 404 : ressource introuvable.")
elif response.status_code >= 500:
print(f"🚨 Erreur serveur ({response.status_code}) : GitHub rencontre un problème.")
else:
print(f"ℹ️ Réponse inattendue : code {response.status_code}")
except requests.exceptions.RequestException as e:
print(f"❌ Une erreur de connexion est survenue : {e}")- Exécutez-le :
python test_github_api.pyVous devriez voir le message correspondant au statut de l'API GitHub dans votre Terminal.
Après avoir installé les bibliothèques nécessaires dans votre environnement virtuel, il est recommandé de congeler les dépendances de votre projet. Cela signifie générer un fichier listant précisément les paquets installés et leurs versions, afin de pouvoir recréer le même environnement ailleurs. Par convention, ce fichier est nommé requirements.txt.
pip freeze > requirements.txtQuand vous avez fini de travailler sur votre projet :
deactivateLe prompt revient à la normale, Python et pip pointent de nouveau vers votre installation globale.
Sur une autre machine ou après avoir supprimé le dossier venv du répertoire de test (exemple ci-dessous) :
rm -r venvSi vous tentez de relancer votre script (test_github_api.py) sans recréer l’environnement, une erreur devrait se produire, car le module requests ne sera plus accessible.
python3 -m venv venvsource venv/bin/activateOu
.\venv\Scripts\Activate.ps1sous Windows.
pip install -r requirements.txtCela installera l’ensemble des packages listés dans le fichier requirements.txt (dans notre exemple, le package requests), et le script (test_github_api.py) devrait fonctionner de nouveau.
L’utilisation de venv vous permet :
- D’isoler vos projets.
- D’éviter les conflits de versions.
- De garantir que chaque collaborateur ou serveur reproduise exactement le même environnement.
Utilisez toujours un environnement virtuel pour vos projets Python, même pour les plus petits scripts. Cela garantit un environnement propre, et vous évite des conflits avec d’autres projets ou bibliothèques installées globalement.
C’est une étape essentielle pour un développement Python professionnel et fiable.