Création d'environnements virtuels Python (venv)
Un environnement virtuel est un espace d'exécution Python isolé avec son propre interpréteur, les paquets installés et sa configuration, complètement isolé de l'environnement système.
Un environnement virtuel Python est un environnement d'exécution Python indépendant qui vous permet de créer des environnements Python isolés pour différents projets sur la même machine.
Différents projets peuvent s'exécuter en parallèle dans leurs propres environnements virtuels sans interférer les uns avec les autres.
Chaque environnement virtuel possède son propre :
- Interpréteur Python
- Paquets/bibliothèques installés
- Variables d'environnement
Les environnements virtuels donnent à chaque projet son propre espace de dépendances, éliminant complètement les conflits de versions.
Pourquoi vous avez besoin d'environnements virtuels
- Isolation des projets: différents projets peuvent utiliser différentes versions de Python et de bibliothèques tierces
- Éviter la pollution: les paquets installés affectent uniquement l'environnement actuel, pas le Python global
- Contrôle des dépendances: grâce à
requirements.txtenregistrer et reproduire précisément les environnements - Tests sécurisés: vous pouvez mettre à niveau ou essayer de nouveaux paquets en toute sécurité sans affecter d'autres projets
Exemple de scénario :
- Le projet A nécessite la version 3.2 de Django
- Le projet B nécessite la version Django 4.0
- Si elles sont installées globalement sur le système, les deux versions entreront en conflit
Outils d'environnement virtuel
| Nom de l'outil | Type | Version de Python | Méthode d'installation | Fonctionnalités | Scénarios applicables |
|---|---|---|---|---|---|
| venv(Recommandé) | Module intégré | ≥ 3.3 | Aucune installation, intégré | Léger, officiellement recommandé, facile à utiliser | Développement général, projets quotidiens |
| virtualenv | Outil tiers | 2.x et 3.x | pip install virtualenv |
Riche en fonctionnalités, prend en charge plusieurs versions | Pour la compatibilité avec les versions plus anciennes ou les fonctionnalités avancées |
| conda | Fourni avec Anaconda | 2.x et 3.x | Installé avec Anaconda/Miniconda | Gestion de paquets multi-langages, écosystème de science des données | Projets de science des données, d'apprentissage automatique |
Pour la prise en charge des versions plus anciennes, vous pouvez utiliser virtualenv (compatible avec Python 2) :
pip install virtualenv # 非必须,venv 通常够用
Dans ce chapitre, nous utiliseronsvenvpour créer et gérer des environnements virtuels.
Création d'un environnement virtuel
Python 3.3+ inclut levenvmodule intégré, aucune installation supplémentaire requise.
Flux de travail d'utilisation
Vue d'ensemble du flux de travail
Vérifiez la version de Python :
python3 --version # 或者 python --version
Créer un environnement virtuel :
# 基本语法 python3 -m venv 环境名称
Par exemple, créez un environnement virtuel nommé.venv:
Exemple
mkdir my_project && cd my_project
# Créer l'environnement virtuel (le nommer '.venv' est une convention courante)
python3 -m venv .venv
Description des paramètres :
-m venv: utilisez le module venv.venv: le nom de l'environnement virtuel (personnalisable)
Structure des répertoires après création
.venv/ ├── bin/ # 在 Unix/Linux 系统上 │ ├── activate # 激活脚本 │ ├── python # 环境 Python 解释器 │ └── pip # 环境的 pip ├── Scripts/ # 在 Windows 系统上 │ ├── activate # 激活脚本 │ ├── python.exe # 环境 Python 解释器 │ └── pip.exe # 环境的 pip └── Lib/ # 安装的第三方库
Activation de l'environnement virtuel
Après activation, les commandes python et pip du terminal actuel pointeront automatiquement vers l'environnement virtuel, et toutes les opérations d'installation sont effectuées dans l'espace isolé.
macOS / Linux
source .venv/bin/activate
Windows(CMD / PowerShell)
.venv\Scripts\activate
Après une activation réussie, l'invite de commande affiche généralement le nom de l'environnement :
(.venv) $
Vérifiez que l'activation est effective :
# 查看 Python 路径,应指向 .venv 目录 which python # macOS/Linux where python # Windows → /path/to/my_project/.venv/bin/python
Utilisation de l'environnement virtuel
Installation des paquets
Dans un environnement activé, les paquets installés avec pip n'affectent que l'environnement actuel :
pip install package_name
Par exemple :
# 安装单个包(如Django) (.venv) pip install django==3.2.12 # 安装多个包 (.venv) pip install requests pandas # 安装速度慢?使用国内镜像 (.venv) pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
Affichage des paquets installés
(.venv) pip list Package Version ---------- ------- Django 3.2.12 pip 21.2.4 # 查看某个包的详情 (.venv) pip show django # 升级包 (.venv) pip install --upgrade pip
Exportation des dépendances
L'utilisation de requirements.txt pour enregistrer et reproduire l'environnement du projet est une pratique standard pour la collaboration en équipe :
(.venv) pip freeze > requirements.txt
Exemple de contenu du fichier requirements.txt :
Django==3.2.12 requests==2.26.0 pandas==1.3.3
Installation des dépendances à partir d’un fichier
(.venv) pip install -r requirements.txt
Astuce :Ajoutez .venv/ à .gitignore et ne committez que requirements.txt. Les environnements virtuels sont volumineux et liés au chemin, ils ne doivent donc pas être inclus dans le contrôle de version.
Désactivation de l’environnement virtuel
Lorsque vous avez terminé de travailler, vous pouvez désactiver l’environnement virtuel :
deactivate
Après la désactivation, l’invite de commande redevient normale, et les commandes Python et pip utiliseront les versions globales du système.
Suppression de l’environnement virtuel
Pour supprimer un environnement virtuel, supprimez simplement son répertoire correspondant :
# 确保已退出环境 deactivate
Suppression de l’environnement virtuel
Un environnement virtuel est essentiellement un répertoire ordinaire ; la suppression du répertoire le supprime complètement :
macOS / Linux
rm -rf .venv
Windows
rmdir /s /q .venv
deactivatepour désactiver l’environnement ; sinon, le shell actuel conservera des variables d’environnement non valides.Exemple de projet concret
Supposons que vous développiez un projet Django :
Exemple
mkdir my_site && cd my_site
# 2. Créer et activer l'environnement virtuel
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 3. Installer Django et enregistrer les dépendances
(.venv) pip install django==4.2
(.venv) pip freeze > requirements.txt
# 4. Initialiser le projet Django
(.venv) django-admin startproject config .
# 5. Exécuter les migrations de base de données et démarrer le serveur de développement
(.venv) python manage.py migrate
(.venv) python manage.py runserver
# 6. Développement terminé, désactivez l'environnement
(.venv) deactivate
Utilisation avancée
Spécification d'une version de Python
Si vous avez plusieurs versions de Python installées, vous pouvez spécifier la version à utiliser pour créer l'environnement virtuel :
python3.8 -m venv .venv # 使用 Python 3.8
Création d'un environnement sans pip
python -m venv --without-pip .venv
Création d'un environnement virtuel héritant des paquets système
python -m venv --system-site-packages .venv
Questions fréquentes
1. Pourquoi mon environnement virtuel n'a-t-il pas de script activate ?
Assurez-vous d'utiliser le chemin correct :
- Windows :
Scripts\activate - Unix/Linux :
bin/activate
2. Comment savoir si je suis actuellement dans un environnement virtuel ?
Vérifiez si l'invite de commande comporte un préfixe du nom de l'environnement, ou exécutez :
which python
3. L'installation des paquets est lente
Utilisez un miroir national :
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
Vérifiez si le chemin de l'interpréteur Python se trouve dans le répertoire de l'environnement virtuel.
4. Un environnement virtuel peut-il être déplacé ?
Déconseillé. Les scripts et les fichiers de configuration à l'intérieur de l'environnement virtuel contiennent des chemins absolus codés en dur, ils deviennent donc invalides après un déplacement. Si une migration est nécessaire, la méthode la plus simple consiste à recréer l'environnement et à utiliserrequirements.txtpour restaurer les dépendances.
5. Combien d'espace un environnement virtuel occupe-t-il ?
Un environnement vide occupe environ 20–50 Mo et grandit à mesure que des paquets sont installés. Les projets de science des données (NumPy, Pandas, PyTorch) peuvent atteindre plusieurs Go. C'est une bonne habitude de nettoyer périodiquement les environnements virtuels qui ne sont plus utilisés.
Bonnes pratiques
- Utilisez un environnement séparé pour chaque projet: pour éviter que les dépendances de différents projets n'interfèrent les unes avec les autres
- Utilisez une convention de nommage unifiée :
.venv: la plupart des IDE (VS Code, PyCharm) peuvent le reconnaître automatiquement - Mettez à jour rapidement
requirements.txt: à chaque foispip installpuis exporter en synchronisation - Ignorer les environnements virtuels dans la gestion de versions: dans
.gitignoreajoutez.venv/ - Nettoyer périodiquement les environnements abandonnés: pour libérer de l'espace disque
- Épingler les numéros de version en production:
requirements.txtécrire explicitement dans==versions, en évitant les mises à niveau accidentelles
# .gitignore 推荐配置 .venv/ __pycache__/ *.pyc .env *.egg-info/Autres extensions