Pour Python 3.3+ (avec un nouveau venv
module 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, virtualenv
est devenu un module intégré nommé venv
.
L' --relocatable
option 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.
venv
vs virtualenv
syntaxe de commande plus ancienne
La commande à utiliser venv
est:
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
py
ou py -3.7
ou 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 --version
le 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 --version
avec 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.txt
pour 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
python
comme commande
- Ou utilisez un chemin absolu avec
python.exe
dans 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_venv
de créer un nouvel environnement virtuel dans le répertoire de travail actuel dans un nouveau my_new_venv
dossier.
- 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.txt
fichier.
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'
-v
option 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.