• PYTHON > les environnements virtuels (virtualenv)

      Installation

      pip install virtualenv

       

      Créer un dossier où tous les environnements iront :

      mkdir .venvs

       

      Puis, créer un dossier à l’intérieur pour recevoir le premier environnement appelé mon_env

      mkdir .venvs/mon_env

       

      Créer un environnement virtuel en lançant la commande suivante :

      cd .venvs
      virtualenv -p python3 mon_env

      Activer un environnement

      source mon_env/bin/activate

       

      L’environnement virtuel est indiqué entre parenthèses sur la gauche du prompt :

      (mon_env) moi@ma_machine $

       

      Dès lors, l’interpréteur Python utilisé n’est plus celui du système mais celui de l’environnement virtuel. Les packages installés sont également différents. Si on ouvre un autre terminal, on constate que l’environnement virtuel n’est pas activé. Il faut le réactiver à chaque fois .

      Désactiver un environnement

      deactivate

      Supprimer un environnement

      deactivate
      rm -rf mon_env

      Désactiver le suivi Git

      Créer un fichier .gitignore qui indique à Git d’ignorer le dossier mon_env :

      mon_env/

      Dépendances

      Créer un fichier requirements.txt qui liste les différentes librairies utilisées ainsi que leur version. Pip le fait automatiquement :

      pip freeze > requirements.txt
      appdirs==1.4.3
      packaging==16.8
      pyparsing==2.2.0
      six==1.10.0

       

      Et pour installer toutes dépendances (librairies), avec le fichier requirements.txt :

      pip install -r requirements.txt

       

      Configurer un alias pour virtualenv avec Python 3 :

      Ajouter dans .bshrc :

      alias mkvenv='virtualenv -p python3'

       

      Puis recharger le fichier :

      source ~/.bashrc

       

      Créer un nouvel environnement virtuel :

      mkvenv ~/venvs/mon_env

       

      Activer l’environnement virtuel :

      source ~/venvs/mon_env/bin/activate

      Automatiser l’activation

      Pour ne pas avoir à taper source mon_env/bin/activate à chaque fois : créer un script autoactivate.sh et y ajouter :

      #!/bin/bash
      source ~/venvs/mon_env/bin/activate

       

      chmod +x autoactivate.sh

       

      Ainsi, chaque fois que l’on veut activer l’environnement virtuel :

      ./autoactivate.sh

      environnement virtuel par défaut

      1 : Créer un environnement virtuel global

      Supposons que le dossier de l’environnement par défaut se trouve à  ~/envs/global_env

      virtualenv ~/envs/global_env

      2 : Ajouter un script d’activation automatique

      Pour automatiser l’activation de cet environnement à chaque ouverture du terminal ou que l’on entre dans un répertoire de projet, ajouter à la fin du fichier ~/.bashrc ou ~/.bash_profile cette commande :

      source ~/envs/global_env/bin/activate

       

      Recharger le fichier de configuration de shell :

      source ~/.bashrc

      3 : Vérifier l’activation de l’environnement virtuel

      Ouvrir un nouveau terminal et vérifier que l’environnement virtuel est activé automatiquement :

      which python
      /home/moi/envs/global_env/bin/python

      4 : Installer des paquets

      pip install <nom_du_paquet>

      5 : Utiliser l’environnement virtuel dans tous les projets

      Dès lors, chaque fois que l’on travaille sur un projet, nous serons dans l’environnement virtuel global par défaut. Cela signifie que tous les paquets installés seront disponibles pour tous les projets.

      environnement virtuel dans le shebang

      Trouver le chemin de l’interpréteur Python :

      source ~/envs/mon_env/bin/activate
      which python
      /home/moi/.envs/mon_env/bin/python

       

      Ajouter le shebang dans le script Python

      #!/home/moi/.envs/mon_env/bin/python
      print("Bonjour, monde!")

      Mettre à jour tous les modules d’un environnement virtuel

      1. Créer un script update_packages.sh :

      #!/bin/bash
      # Chemin vers l'environnement virtuel
      VENV_PATH="~/envs/mon_env"
      # Activer l'environnement virtuel
      source $VENV_PATH/bin/activate
      # Mettre à jour pip
      pip install --upgrade pip
      # Mettre à jour tous les paquets installés
      pip list --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs pip install -U
      # Désactiver l'environnement virtuel
      deactivate

       

      chmod +x ~/update_packages.sh

      2 : Ajouter une tâche cron

      crontab -e

       

      Tous les jours à 2h du matin :

      0 2 * * * /bin/bash ~/update_packages.sh >> ~/update_packages.log 2>&1

       

      >> ~/update_packages.log 2>&1 Redirige la sortie et les erreurs vers un fichier de log ~/update_packages.log.

       

      Vérifier que la tâche cron a bien été ajoutée :

      crontab -l

       

      Voili, voilou !

 

Aucun commentaire

 

Laissez un commentaire