Python venv

Le module venv permet de créer des “environnements virtuels” légers avec leurs propres dossiers site, optionnellement isolés des dossiers site système. Chaque environnement virtuel a son propre binaire Python (qui correspond à la version du binaire qui a été utilisée pour créer cet environnement) et peut avoir sa propre liste de paquets Python installés dans ses propres dossiers site.

Dépendances

Vérifier ou installer python3

sudo apt install python3 python3-venv

Ensuite, si vous prévoyez d’utiliser Virtualenv, installez-le aussi.

sudo apt install virtualenv python3-virtualenv

venv en ligne de commande

La création d’environnements virtuels est faite en exécutant la commande venv (fonctionnalité venv de Python 3 est intégrée)

python3 -m venv /path/to/virtual/environment

Lancer cette commande crée le dossier du venv (en créant tous les dossiers parents qui n’existent pas déjà) et crée un fichier pyenv.cfg à l’intérieur de ce dossier avec une clé home qui pointe sur l’installation Python depuis laquelle cette commande a été lancée. Il crée aussi un sous-dossier bin contenant une copie (ou un lien symbolique) du ou des binaire python (dépend de la plateforme et des paramètres donnés à la création de l’environnement). Il crée aussi un sous-dossier (initialement vide) lib/pythonX.Y/site-packages. Si un dossier existant est spécifié, il sera réutilisé.

Sur archlinux python version 3 par défaut

python3 --version   # archlinux : saisir python qui est par défaut la version 3
    Python 3.7.3

Activation

source /path/to/virtual/environment/bin/activate

Pour avoir le “prompt” suivant

(environment) [~]$ 

Désactiver l’environnement

deactivate

Utliser Virtualenv

Pour commencer, créez votre environnement avec la commande virtualenv. Vous devrez également lui dire d’utiliser Python 3 avec l’option -p.

virtualenv -p python3 /path/to/virtual/environment

Cela prendra quelques secondes pour s’installer avec Pip et les autres paquets Python qu’il contient. Quand c’est fini, activez l’environnement.

source your-project/bin/activate

Faites votre travail dans les répertoires de projets. Lorsque vous avez terminé, utilisez deactivate pour quitter l’environnement virtuel.

“Wing Personnal Python IDE” - Utilisation d’un Virtualenv existant

Pour utiliser un virtualenv existant avec Wing, il suffit de définir l’exécutable Python dans les propriétés du projet de Wing (Project Properties) sur le python dans votre répertoire virtualenv. Wing l’utilise pour déterminer l’environnement à utiliser pour l’analyse des sources et pour exécuter, tester et déboguer votre code.

La façon la plus simple de trouver la valeur correcte à définir est de lancer votre Python virtualenv à l’extérieur de Wing et d’exécuter ce qui suit de manière interactive :

(envgpx) [~]$ python
Python 3.7.3 (default, Mar 26 2019, 21:43:19) 
[GCC 8.2.1 20181127] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.executable
'/path/to/virtual/environment/bin/python'
>>> quit()

Utilisez le chemin complet qui s’affiche comme exécutable Python dans Wing.

“Wing Personnal Python IDE” - Créer un nouveau Virtualenv

Si vous démarrez un nouveau projet à partir de zéro et que vous souhaitez créer un nouveau virtualenv pour le projet, sélectionnez Nouveau projet (New Project) dans le menu Projet (Project) et utilisez le bouton Créer un nouveau type de projet Virtualenv (Create New Virtualenv). Vous devrez entrer les valeurs suivantes :

  • Name est le nom de votre répertoire virtualenv.
  • Parent Directory est le répertoire où le répertoire virtualenv sera créé.
  • Python Executable sélectionne l’installation de base de Python à utiliser. En Python 2, vous devez d’abord installer virtualenv dans le Python sélectionné, s’il n’est pas déjà présent.
  • Inherit global site-packages contrôle si l’option –system-site-packages doit être utilisée lors de l’exécution de virtualenv. Une fois coché, le virtualenv pourra utiliser les paquets installés dans l’installation de base de Python. Sinon, il sera complètement isolé de l’installation de base, autre que son utilisation des bibliothèques standard de Python.
  • Auto-save project contrôle si Wing enregistre automatiquement son fichier projet dans le répertoire virtualenv. Lorsqu’il est coché, le projet est nommé en utilisant le Name saisi ci-dessus plus.wpr et est stocké dans le niveau supérieur du répertoire virtualenv. Dans Wing Pro, qui sépare les données de projet partageables des données spécifiques à l’utilisateur, un deuxième fichier se terminant par.wpu sera également écrit.

Après avoir soumis le dialogue Nouveau projet (** New Project), Wing créera le virtualenv, définira l’exécutable Python dans les propriétés du projet (Project Properties**) sur le python dans le répertoire virtualenv, et ajoutera le répertoire virtualenv au projet.

Maintenant, l’analyse des sources, l’exécution, le débogage et les tests dans Wing utiliseront le nouveau virtualenv, tant que le projet que vous venez de créer est ouvert. Vous devrez redémarrer l’outil Python Shell dans Wing avant qu’il n’utilise le virtualenv nouvellement créé.