web-dev-qa-db-fra.com

Comment changer la version python de virtualenv déjà existant?

J'ai créé un environnement virtuel en utilisant python 3.6, puis j'ai fait une mise à niveau du système et j'ai python 3.7 installé sur tout le système. Maintenant je peux n'exécutez pas python fichiers dans cet environnement virtuel car il recherche python 3.6.

Comment puis-je mettre à niveau la version virtualenv python pour correspondre à la version à l'échelle du système ou comment rétrograder la version python pour cet environnement virtuel particulier?

J'utilise manjaro.

8
dAn

EDIT 1

A fait quelques tests et trouvé une autre façon plus "gracieuse" de mettre à jour (au moins) l'exécutable. Supposons que l'env virtuel ait été initialement créé comme ceci virtualenv -p /path/to/my/python2.7 .venv. L'exécutable peut être mis à jour vers une version spécifique python comme ceci: virtualenv --clear -p /path/to/my/python3.6 .venv. Veuillez valider le lien symbolique python dans .venv/bin/python est mis à jour à l'aide de ls -la .venv/bin/python. Le ou les anciens exécutables seront toujours dans ./venv/bin/.

Remarque: Vous devez avoir la version cible spécifique de python installée.


Voir ce lien qui l'explique bien.

Virtualenvwrapper est livré avec quelques commandes pratiques pour gérer vos virtualenvs.

Pour changer votre Python:

  1. Désactivez votre session d'environnement actuelle.

  2. Si vous avez de nombreux packages ou bibliothèques installés, ce serait une bonne idée de créer un fichier requirements.txt. N'oubliez pas de modifier la version si nécessaire.

  3. Supprimez virtualenv avec la commande wrapper: rmvirtualenv

    • Cela supprimera le virtualenv, mais laissez vos fichiers de projet.
  4. Créez un nouveau virtualenv avec la version Python que vous voulez.

    • Exemple: mkvirtualenv -p python3 nom-env

    • Vous pouvez spécifier la version Python avec l'indicateur -p et la version. Si vous avez un fichier requirements.txt, vous pouvez le spécifier avec -r requirements.txt

  5. Liez maintenant votre nouveau virtualenv à votre répertoire de projet. Vous pouvez spécifier les chemins d'accès complets, mais il est plus facile d'avoir votre nouveau virtualenv activé et d'être dans votre répertoire de projet. Ensuite, exécutez la commande:

Exemple: setvirtualenvproject

Veuillez me/nous faire savoir si cette réponse vous a été utile!

5
Thomas Hesse