Pour Python 3.3+ (avec un nouveau venvmodule intégré)
Réponse courte (quelle que soit la version):
- Il n'y a pas de moyen propre et direct de déplacer un environnement virtuel
- Recréez simplement, c'est facile !!
Longue réponse:
Depuis Python v3.3, virtualenvest devenu un module intégré nommé venv.
L' --relocatableoption mentionnée dans d'autres réponses n'a pas été incluse dans venv, et actuellement, il n'y a pas de moyen sûr et sûr à ma connaissance de renommer ou de déplacer un environnement virtuel Python.
Cependant, il existe un moyen assez simple de recréer simplement un environnement virtuel, avec tous ses packages actuellement installés. Consultez cette réponse ou consultez la section ci-dessous pour obtenir des informations sur la recréation d'un environnement virtuel. Au cours du processus, vous pouvez recréer le nouvel environnement dans n'importe quel endroit et avec le nom de votre choix. Ou consultez la section ci-dessous pour le processus.
Dans cette réponse, il mentionne quelques autres packages tiers qui peuvent prendre en charge les changements de noms ou les déplacements directs. Si vous êtes décidé à rechercher un moyen de déplacer un environnement virtuel intact, vous pouvez vérifier si ceux-ci fonctionnent venvégalement.
Remarque: Dans cette réponse, il est axé sur virtualenv, plutôt que sur venv. Voir ci-dessous pour savoir comment traduire.
venvvs virtualenvsyntaxe de commande plus ancienne
La commande à utiliser venvest:
python -m venv
plutôt que simplement virtualenv, qui s'installe en tant que commande dans le package d'origine. Où «python» fait référence à la façon dont vous exécutez votre exécutable python, ce qui peut être une variété de choses, telles que:
python
pyou py -3.7ou similaire (le lanceur Python pour Windows pour Python 3.3+ et Windows uniquement pour le moment)
python3 (convention pour les environnements Linux qui installent en double python 2 et 3)
- Si vous rencontrez des problèmes, utilisez le chemin absolu de l'exécutable python que vous souhaitez exécuter: par exemple
c:\program files\python37\python.exe
Si vous ne savez pas quelle version est exécutée, vous pouvez toujours python --versionle savoir.
Comment recréer un environnement virtuel
Créer / recréer un environnement virtuel est facile et devrait devenir une seconde nature après avoir travaillé un peu avec eux. Ce processus reflète ce que vous feriez pour distribuer votre script en tant que package (avec ses dépendances) dans la première moitié, puis ce que quelqu'un ferait pour installer votre script / package pour un développement ultérieur.
Tout d'abord, obtenez une liste mise à jour de ce qui se trouve dans l'environnement virtuel. Lorsqu'il est actif, obtenez la version de Python qu'il utilise et enregistrez la liste des dépendances dans un fichier.
Utiliser python --versionavec l'environnement virtuel activé pour voir quelle version de Python il utilise.
- C'est pour plus de clarté - vous pouvez mettre à jour la version Python pour diverses raisons - au moins vers la dernière version du correctif
- Par exemple, si le venv existant utilise Python v3.7.4, mais que maintenant la v3.7.6 est hors service, utilisez la v3.7.6 à la place, qui ne devrait inclure que des correctifs de sécurité et de bogues sans rupture.
Utilisez python -m pip freeze > requirements.txtpour créer la liste des dépendances actuelles du package et les mettre dans lerequirements.txt fichier. Cette commande fonctionne sous Linux ou Git Bash à coup sûr - pas sûr à 100% de Powershell ou de la ligne de commande sous Windows.
Créez maintenant un nouvel environnement virtuel, puis ajoutez les dépendances de l'ancien.
Faites votre nouveau venv.
- Assurez-vous que vous utilisez la bonne version de python que vous souhaitez installer sur le venv.
- Si vous voulez que ce soit exactement la même version de Python:
- Exécutez python directement à partir de l'environnement virtuel actuel (avec celui-ci activé), et utilisez simplement
pythoncomme commande
- Ou utilisez un chemin absolu avec
python.exedans le dossier de l'environnement virtuel
- Pour la nouvelle entrée de dossier venv dans la commande:
- Ajoutez un chemin absolu ou relatif à l'emplacement de dossier final souhaité.
- Permet
python -m venv my_new_venvde créer un nouvel environnement virtuel dans le répertoire de travail actuel dans un nouveau my_new_venvdossier.
- Le nom du dossier venv sera le nom du venv (ce qui apparaît dans l'invite lorsqu'il est activé).
Installez vos dépendances à partir du requirements.txtfichier.
python -m pip install -r requirements.txt
Vous devrez peut-être réinstaller les packages locaux qui sont en mode de développement.
Notez que si vous avez besoin de voir l'emplacement spécifique dans lequel un package est installé, utilisez:
python -m pip list -v
- L'
-voption ou "verbose" ajoutera des informations supplémentaires sur chaque paquet qui est installé, y compris le chemin dans lequel il est installé. Ceci est utile pour vous assurer que vous gardez les paquets virtuels, utilisateur et système installés.
À ce stade, vous pouvez simplement supprimer l'ancien dossier venv et tout son contenu. Je recommande d'utiliser une interface graphique pour cela - les suppressions de fichiers sont souvent permanentes à partir de la ligne de commande Linux, et une petite faute de frappe peut être une mauvaise nouvelle.