Si vous avez déplacé un projet Python sur votre Mac et que son .venv a cessé de fonctionner, recréez l'environnement au nouvel emplacement du projet. Les environnements virtuels Python contiennent des chemins liés à l'endroit où ils ont été créés ; ainsi, modifier le nom du dossier ou le répertoire parent peut casser l'activation et les commandes installées. Conservez les fichiers de votre projet, supprimez uniquement l'ancien .venv, puis créez un nouvel environnement et réinstallez les dépendances à partir des fichiers de dépendances du projet. La documentation de venv de Python décrit les environnements comme étant généralement non portables et recommande d'en recréer un après l'avoir déplacé.

Pourquoi un environnement déplacé ne fonctionne plus

Un environnement virtuel stocke sa configuration Python et génère des scripts installés contenant des chemins absolus vers l'interpréteur de l'environnement. Lorsque vous déplacez le dossier du projet, ces chemins peuvent continuer à pointer vers l'ancien emplacement. Cela peut amener source .venv/bin/activate à faire référence à un fichier manquant, ou faire en sorte qu'une commande installée dans l'environnement appelle un interpréteur qui n'existe plus. Réexécuter l'activation ou renommer l'environnement ne répare pas ces chemins intégrés de manière fiable ; la solution documentée par Python consiste à recréer l'environnement à son nouvel emplacement. Python : venv et fonctionnement des environnements

1. Ouvrir le projet déplacé dans Terminal

Dans Terminal, placez-vous dans le répertoire actuel du projet. Dans zsh ou bash, mettez le chemin entre guillemets s'il contient des espaces ou des caractères spéciaux du shell ; remplacez le chemin d'exemple par l'emplacement réel du dossier :

cd "$HOME/Projects/My Python Project"
pwd
ls -la

Vérifiez que vous vous trouvez bien à la racine du projet et que vous pouvez voir ses fichiers sources et ses informations de dépendances. Les fichiers de dépendances courants incluent requirements.txt, pyproject.toml et un fichier de verrouillage (lockfile) propre au projet. Ne supprimez pas l'ensemble du projet ni ses fichiers de dépendances. Si vous avez un doute sur le dossier correspondant à l'ancien environnement, inspectez son contenu avant de supprimer quoi que ce soit.

2. Supprimer uniquement l'ancien environnement

Si le répertoire de l'environnement est nommé .venv et se trouve à la racine du projet, supprimez ce répertoire uniquement. Désactivez-le d'abord si l'invite de commande indique qu'il est actif ; deactivate est la commande shell documentée à cet effet. Exécutez ensuite :

deactivate
rm -rf .venv

Si aucun environnement n'est actif, deactivate peut indiquer que la commande est introuvable ; poursuivez sans elle. Avant d'exécuter rm -rf .venv, vérifiez que pwd affiche la racine du projet et que .venv est bien l'environnement que vous prévoyez de remplacer. Si votre environnement porte un autre nom ou se situe ailleurs, remplacez-le par son chemin exact et veillez à ne pas supprimer le code source ou les données du projet. Python recommande de supprimer l'ancien environnement après l'avoir recréé à son nouvel emplacement ; cet article le supprime en premier pour lever toute ambiguïté sur la cible visée. Python : venv et fonctionnement des environnements

3. Recréer l'environnement avec la version appropriée de Python

Si le projet spécifie une version de Python, utilisez un interpréteur correspondant disponible sur votre Mac. Par exemple, si python3.12 est installé et que le projet requiert cette version :

python3.12 -m venv .venv
source .venv/bin/activate
python --version
python -m pip --version

Si le projet ne précise pas de version et que votre python3 habituel convient, utilisez plutôt python3 -m venv .venv. Sur macOS, la commande standard d'activation pour zsh et bash est source .venv/bin/activate. Vérifiez la sortie de python --version avant de restaurer les paquets ; python doit pointer vers l'interpréteur de l'environnement une fois celui-ci activé. Python : activation de venv et chemins de l'interpréteur

Les utilisateurs de Homebrew doivent conserver les paquets du projet à l'intérieur de l'environnement virtuel. Homebrew documente son Python actuel comme étant géré de manière externe et recommande l'usage d'un environnement de projet pour les dépendances. Si python3 est introuvable ou sélectionne un interpréteur inadapté, consultez l'installateur ou le gestionnaire de versions qui a fourni le Python du projet ; n'essayez pas de réparer l'environnement en installant des paquets dans les répertoires Python gérés par macOS. Homebrew: Language Runtimes and Packages

4. Réinstaller les dépendances à partir du projet

Suivez les instructions de dépendances existantes du projet ou utilisez son fichier de verrouillage si disponible. Pour un projet qui gère ses dépendances dans requirements.txt, réinstallez-les avec le Python et le pip de l'environnement :

python -m pip install -r requirements.txt

L'utilisation de python -m pip associe directement pip à l'interpréteur sélectionné par python. Si le projet utilise un autre gestionnaire de dépendances ou un fichier lock, suivez la procédure d'installation documentée de cet outil au lieu d'inventer un fichier requirements ou d'ignorer le fichier de verrouillage. Un environnement venv neuf intègre pip par défaut, et la documentation de Python mentionne explicitement le fichier requirements comme moyen de réinstaller les paquets requis. Python : venv, Python : Installer des modules Python

Si l'installation échoue parce qu'un paquet requiert un compilateur, une bibliothèque native ou une version de Python non prise en charge par le projet, il se peut que l'environnement virtuel lui-même ait été recréé correctement mais que cette dépendance nécessite toujours son prérequis documenté. Consultez les guides d'installation du paquet ou du projet et traitez l'erreur spécifique ; n'essayez pas de contourner le problème avec sudo pip ou en modifiant les autorisations des fichiers Python du système. Homebrew déconseille ces méthodes de contournement pour les répertoires gérés. Homebrew: Language Runtimes and Packages

5. Vérifier que l'environnement réparé est actif

Confirmez que l'interpréteur sélectionné se trouve bien à l'intérieur du nouveau .venv, puis exécutez la commande habituelle ou les instructions de test du projet :

python -c 'import sys; print(sys.executable)'

Le chemin affiché doit pointer vers le répertoire .venv du projet. S'il pointe ailleurs, réactivez l'environnement depuis la racine du projet et vérifiez les paramètres d'initialisation du shell ou les alias de commande susceptibles de modifier la sélection de Python. Cette vérification permet de confirmer la sélection de l'interpréteur ; elle ne garantit pas que chaque dépendance ou fonctionnalité de l'application fonctionne.

Un environnement virtuel déplacé doit être considéré comme jetable : conservez le code source ainsi que les fichiers décrivant les dépendances, puis reconstruisez .venv là où se trouve désormais le projet. Répéter ces étapes après chaque déplacement constitue la méthode de récupération documentée et fiable.

Sources