Environnement virtuel Python sur Ubuntu 22.04 : créer, activer et éviter les conflits de dépendances
Un projet Python qui marche lundi et casse vendredi, ce n’est pas de la magie noire. C’est souvent un paquet installé au mauvais endroit, un pip global trop confiant ou une dépendance qui écrase une autre. Sur Ubuntu 22.04, créer un venv Python Ubuntu 22.04 n’est pas une coquetterie de développeur maniaque : c’est le petit pare-feu qui sépare votre application du Python système.
L’enjeu est simple : garder Ubuntu stable, garder vos projets reproductibles, et arrêter de transformer chaque installation de bibliothèque en lancer de dés. Voici une méthode claire pour préparer la machine, créer un environnement virtuel, l’activer, installer les paquets au bon endroit et lire les erreurs sans paniquer devant le terminal.
En bref
🧩 Un environnement virtuel Python isole les bibliothèques d’un projet pour éviter les conflits avec le Python système d’Ubuntu 22.04.
⚙️ La base fiable repose sur trois paquets ou outils : python3, python3-pip et python3-venv, puis la commande python3 -m venv .venv.
🚦 Après activation avec source .venv/bin/activate, le terminal doit utiliser le pip du projet, pas celui du système. C’est là que tout se joue.
📦 Un fichier requirements.txt transforme votre setup local en environnement réinstallable. Moins glamour qu’un framework à la mode, mais beaucoup plus utile.
Pourquoi le venv Python Ubuntu 22.04 évite-t-il autant de problèmes ?
Un environnement virtuel Python isole les dépendances d’un projet sur Ubuntu 22.04 afin d’éviter les conflits avec Python système. La création se fait avec python3 -m venv, puis l’activation avec source. Le gain réel : un système plus propre, des projets reproductibles et moins de bugs absurdes liés aux versions de paquets.
Ubuntu 22.04 installe généralement Python 3.10.x par défaut. Ce Python sert aussi à des outils du système et à des paquets installés via apt. Le traiter comme un bac à sable pour tous vos tests, c’est demander des ennuis. Ça peut passer sur un petit script. Sur trois projets avec des versions différentes de Django, NumPy ou Requests, ça finit souvent en soupe.
Le module venv, documenté dans la documentation officielle Python sur les environnements virtuels, crée un répertoire contenant ses propres exécutables Python et son propre espace de bibliothèques. Votre projet peut donc utiliser une version donnée d’un paquet sans bousculer le reste de la machine. C’est moins spectaculaire qu’un nouveau framework. Mais en pratique, c’est un énorme amortisseur de galères.
Le vrai progrès n’est pas d’installer plus vite un paquet Python. C’est de savoir exactement où il s’installe.
La logique est proche d’un setup gaming propre : un profil par jeu, une configuration par usage, pas un gros dossier fourre-tout où chaque patch vient casser le framerate du voisin. Ici, le framerate s’appelle stabilité. Et la latence, c’est le temps perdu à déboguer une dépendance installée globalement sans s’en rendre compte.
Préparer Ubuntu 22.04 avant de créer l’environnement virtuel
Avant de lancer un venv Python Ubuntu 22.04, il faut éviter le classique : suivre un tutoriel, copier trois commandes, puis découvrir que pip ou python3-venv manque. La préparation prend deux minutes. Elle évite vingt minutes de terminal qui râle.

Commencez par mettre à jour l’index des paquets et les paquets installés. Commande classique, pas sexy, mais saine :
sudo apt update && sudo apt upgrade -y
Ensuite, vérifiez la version de Python disponible :
python3 --version
Sur une installation Ubuntu 22.04 standard, la réponse attendue tourne autour de Python 3.10.x. Si la commande n’existe pas, votre environnement est atypique ou très minimal. Dans ce cas, il faut d’abord installer Python 3 via les paquets Ubuntu, pas bricoler un binaire téléchargé au hasard.
Installez ensuite pip, l’outil qui gère les paquets Python :
sudo apt install python3-pip -y
Puis installez le module système nécessaire à la création des environnements virtuels :
sudo apt install python3-venv -y
Le paquet python3-venv est disponible dans les dépôts Ubuntu Jammy, comme le montre la page du paquet python3-venv pour Ubuntu 22.04. C’est la méthode propre : on utilise les paquets de la distribution pour fournir l’outil de base, puis le venv pour les dépendances du projet.
Pour certains paquets qui compilent des extensions natives, ajoutez les outils de compilation courants :
sudo apt install build-essential libssl-dev libffi-dev python3-dev -y
Cette commande n’est pas obligatoire pour un script simple. Elle devient utile dès que vous installez des bibliothèques qui ont besoin de compiler du code C, de gérer SSL ou d’interagir avec les en-têtes Python. Traduction : si pip se met à cracher des erreurs de build, ces paquets sont souvent les premiers suspects.
Sur une installation Ubuntu 22.04 standard testée en terminal Bash, on constate que l’erreur la plus fréquente vient moins de Python lui-même que d’un oubli de python3-venv. Le symptôme est simple : la commande de création échoue alors que python3 fonctionne parfaitement.
Checklist de préparation rapide
- Mettre à jour apt avant d’installer les outils Python.
- Vérifier Python avec
python3 --version. - Installer pip avec
sudo apt install python3-pip -y. - Installer venv avec
sudo apt install python3-venv -y. - Ajouter les outils de build si vous installez des paquets avec extensions natives.
Comment créer un venv Python Ubuntu 22.04 proprement ?
Pour créer un venv Python sur Ubuntu 22.04, placez-vous dans le dossier du projet puis lancez python3 -m venv .venv. Le dossier .venv contient l’environnement isolé : interpréteur, scripts d’activation et bibliothèques. Cette convention reste lisible, compatible avec les IDE et facile à exclure de Git.
La bonne habitude consiste à créer un environnement virtuel par projet. Pas un venv partagé pour tout le dossier Documents, pas un environnement “fourre-tout” qui devient aussi propre qu’un tiroir à câbles. Un projet, un environnement. C’est le ratio gain/prix imbattable.
Créez un dossier de projet, puis entrez dedans :
mkdir mon-projet-python
cd mon-projet-python
Créez ensuite l’environnement virtuel :
python3 -m venv .venv
Le nom .venv est une convention pratique. Le point rend le dossier discret dans l’explorateur de fichiers, et de nombreux outils comme VS Code ou PyCharm le détectent correctement. Vous pouvez appeler l’environnement test_env ou env, et la commande python3 -m venv test_env fonctionne aussi. Mais .venv gagne en lisibilité dans un workflow moderne.
La commande génère une structure avec plusieurs éléments utiles : un binaire Python lié à l’environnement, un dossier de scripts, et un emplacement dédié aux paquets installés. Vous n’avez pas besoin de modifier ces fichiers à la main. Si vous commencez à éditer le contenu interne du venv pour “réparer” quelque chose, stop. Supprimez l’environnement et recréez-le. C’est souvent plus propre.
| Élément | Rôle | À manipuler ? |
|---|---|---|
.venv/bin/python |
Interpréteur Python isolé du projet | Non, on l’utilise via activation ou chemin direct |
.venv/bin/activate |
Script d’activation pour Bash et shells compatibles | Oui, avec source |
.venv/lib/ |
Bibliothèques installées dans le venv | Non, pip s’en charge |
requirements.txt |
Liste exportable des dépendances | Oui, à versionner dans Git |
Comment activer et utiliser l’environnement virtuel sans se tromper de pip ?
Activez l’environnement avec source .venv/bin/activate. Le prompt affiche généralement (.venv), signe que le terminal utilise l’environnement du projet. Installez ensuite les paquets avec pip ou python -m pip. Pour sortir, tapez simplement deactivate.
Créer le venv ne suffit pas. Tant qu’il n’est pas activé, votre terminal continue d’utiliser le contexte courant. C’est ici que beaucoup d’installations partent dans le décor : l’utilisateur crée bien .venv, puis installe ses paquets dans le Python global. Beau geste, mauvais panier.
Depuis la racine du projet, activez l’environnement :
source .venv/bin/activate
Le prompt doit généralement changer et afficher quelque chose comme (.venv) au début de la ligne. Ce n’est pas une garantie absolue, car certains thèmes de terminal masquent ou personnalisent le prompt. Mais c’est un bon signal visuel. Vérifiez ensuite le chemin utilisé :
which python
which pip
Les deux commandes doivent pointer vers le dossier .venv/bin/ de votre projet. Si pip pointe vers /usr/bin/pip ou un chemin global, vous n’êtes pas dans le bon périmètre. Et là, non, ce n’est pas “presque pareil”. C’est précisément le problème.
Installez un paquet de test, par exemple matplotlib, uniquement après activation :
pip install matplotlib
Ou, encore plus explicite :
python -m pip install matplotlib
Cette forme a un avantage : elle utilise le pip associé au Python courant. C’est une bonne défense contre les confusions de chemin, surtout sur une machine avec plusieurs versions de Python ou plusieurs environnements.
Si vous ne vérifiez jamais
which pip, vous ne gérez pas vos dépendances : vous espérez qu’elles tombent au bon endroit.
Quand vous avez terminé, sortez de l’environnement :
deactivate
Ce réflexe compte. Il évite d’installer par erreur les dépendances du projet suivant dans le venv précédent. Oui, c’est basique. Comme sauvegarder avant un flash BIOS. On oublie une fois, puis on devient croyant.
Les erreurs courantes avec python3-venv sur Ubuntu 22.04 : comment les lire ?
Les erreurs liées à un venv Python Ubuntu 22.04 sont rarement mystérieuses quand on sait où regarder. Le terminal donne souvent un indice : module absent, chemin incorrect, shell différent, pip global utilisé. Le piège, c’est de répondre à tout avec sudo pip install. Mauvaise idée. Très mauvais réflexe.
Le module venv manque ou la création échoue
Si la commande python3 -m venv .venv échoue avec un message indiquant que ensurepip ou venv n’est pas disponible, installez ou réinstallez le paquet :
sudo apt install python3-venv -y
Sur certaines configurations, notamment si plusieurs versions de Python cohabitent, il peut être nécessaire d’installer un paquet lié à la version exacte, par exemple python3.10-venv. Vérifiez d’abord votre version avec python3 --version, puis restez cohérent : le venv doit être créé avec l’interpréteur que vous comptez utiliser.
Le prompt ne change pas après activation
Si source .venv/bin/activate ne change pas le prompt, ne concluez pas trop vite que l’activation a échoué. Certains thèmes Bash ou Zsh filtrent l’affichage. Le test fiable reste :
which python
python -c "import sys; print(sys.prefix)"
Le chemin retourné doit pointer vers le dossier du projet. Si ce n’est pas le cas, vérifiez que vous êtes dans le bon répertoire, que le dossier .venv existe bien, et que vous n’avez pas tapé une variante du chemin. Le terminal n’a pas d’humour avec les slashs.
pip installe au mauvais endroit
Le symptôme classique : vous installez une bibliothèque, puis Python répond ModuleNotFoundError. Souvent, pip et python ne ciblent pas le même environnement. Utilisez :
python -m pip --version
La sortie doit mentionner un chemin dans .venv. La documentation officielle de pip recommande justement de raisonner avec l’environnement Python actif. En clair : arrêtez de faire confiance à un simple pip si vous ne savez pas d’où il vient.
Bonnes pratiques pour garder des projets Python propres
Un environnement virtuel n’est pas seulement une commande à lancer au début. C’est une façon de gérer le cycle de vie d’un projet : installation, test, partage, reprise six mois plus tard quand tout le monde a oublié pourquoi cette dépendance était là. Et c’est précisément là que les bons réflexes font la différence.

La première règle est simple : un environnement par projet. Partager un venv entre deux applications semble pratique au début. Puis l’une impose une version de bibliothèque incompatible avec l’autre. Et vous voilà à arbitrer une guerre de dépendances que personne n’a envie de mener.
La deuxième règle : figez les dépendances après installation :
pip freeze > requirements.txt
Ce fichier liste les paquets installés et leurs versions. Il doit être versionné avec le projet, contrairement au dossier .venv, qui doit généralement rester hors Git. Pour recréer l’environnement ailleurs :
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Ce n’est pas parfait pour tous les scénarios avancés, mais pour un niveau débutant à intermédiaire, c’est net, compréhensible et efficace. Ça change quoi ? Vous pouvez supprimer votre venv local, le reconstruire, partager le projet, ou repartir sur une machine propre sans deviner les paquets installés à la main trois semaines plus tôt.
- Ajoutez
.venv/au fichier.gitignorepour ne pas versionner l’environnement local. - Versionnez
requirements.txtpour rendre le projet reproductible. - Préférez
python -m pipquand vous doutez du pip utilisé. - Évitez
sudo pip installpour les dépendances de projet. - Recréez plutôt que réparer un venv devenu incohérent.
Pour aller plus loin, virtualenv reste une alternative historique, parfois utile pour des besoins de compatibilité. virtualenvwrapper ajoute des commandes pratiques, mais demande une configuration du fichier shell comme .bashrc. Poetry et Conda vont plus loin dans la gestion de projet ou d’environnements scientifiques. Mais pour Ubuntu 22.04 et un usage Python courant, venv reste le choix le plus sobre : intégré, documenté, suffisant.
| Outil | Quand l’utiliser | Verdict pratique |
|---|---|---|
| venv | Projets Python classiques sur Ubuntu 22.04 | Le meilleur point de départ |
| virtualenv | Compatibilité ou habitudes anciennes | Utile, mais rarement nécessaire au début |
| virtualenvwrapper | Gestion de nombreux environnements nommés | Confortable, configuration en plus |
| Poetry | Gestion projet + dépendances + packaging | Puissant, moins minimaliste |
| Conda | Data science, piles natives complexes | Solide, mais écosystème séparé |
Conclusion : le venv est un petit geste qui sécurise tout le projet
Sur Ubuntu 22.04, créer un environnement virtuel Python n’est pas une étape administrative. C’est une séparation nette entre le système, le projet et les dépendances. Le coût est minuscule : quelques commandes, un dossier .venv, une activation. Le gain est massif : moins de conflits, moins d’installations globales douteuses, plus de reproductibilité.
Le bon workflow tient en une ligne mentale : préparer Ubuntu, créer .venv, activer, installer, figer. Rien de flamboyant. Mais c’est exactement le genre de discipline qui évite les builds cassés, les imports fantômes et les “chez moi ça marche” impossibles à reproduire.
À retenir
- 🧠 Un venv isole les dépendances Python sans toucher au système Ubuntu.
- 🛠️ Installez python3-venv avant de lancer python3 -m venv .venv.
- ✅ Vérifiez toujours which python et which pip après activation.
- 📦 Gardez requirements.txt dans Git, mais excluez le dossier .venv.
- 🚫 Évitez sudo pip install pour les dépendances applicatives.
FAQ
Dois-je créer un venv pour chaque petit script Python ?
Pour un script jetable de quelques lignes, ce n’est pas indispensable. Dès qu’un script dépend d’un paquet externe installé avec pip, un venv devient préférable. Le coût est faible et vous évitez de polluer Python système pour un test qui devait durer cinq minutes.
Puis-je supprimer le dossier .venv sans casser mon projet ?
Oui, si votre projet contient un fichier requirements.txt à jour. Le code source reste intact ; seules les dépendances locales disparaissent. Vous pouvez recréer l’environnement avec python3 -m venv .venv, l’activer, puis relancer pip install -r requirements.txt.
Quelle différence entre pip3 et pip dans un environnement activé ?
Dans un venv activé correctement, pip et parfois pip3 pointent vers l’environnement du projet. Le plus fiable reste python -m pip, car la commande utilise explicitement le pip associé au Python actif. C’est le choix le moins ambigu.
Pourquoi ne pas installer les paquets avec sudo pip install ?
sudo pip install peut modifier des emplacements globaux et entrer en conflit avec les paquets gérés par Ubuntu via apt. Pour les dépendances d’un projet, c’est le mauvais périmètre. Utilisez un venv, puis installez sans sudo dans cet environnement.
Un venv fonctionne-t-il avec VS Code ou PyCharm sur Ubuntu 22.04 ?
Oui. Les IDE modernes détectent généralement le dossier .venv à la racine du projet. Si ce n’est pas automatique, sélectionnez manuellement l’interpréteur situé dans .venv/bin/python. Vérifiez ensuite que le terminal intégré active bien le même environnement.