Table des matières

Introduction

Lorsque nous travaillons sur Python, il est toujours intéressant d'utiliser des environnements virtuels pour les projets.

Bien que de nombreuses ressources de formation en ligne ignorent ou quittent ce sujet, personnellement, je pense que c'est un domaine qu'il vaut mieux couvrir dès que possible.

D'un point de vue simpliste, il fournit un environnement pratique pour que les individus expérimentent la pléthore de modules disponibles dans l'écosystème python, et atténue le besoin de privilèges root lors de l'installation de modules sur des systèmes Linux.

Il y a aussi une variété d'autres avantages.

Installation

Comment utiliser virtualenv pour basculer facilement entre plusieurs versions d'Ansible As root (sudo) get pip:

En tant que ROOT (sudo):

Installation des dépendances :

user@server:~$ sudo apt install build-essential libssl-dev libffi-dev python-dev

Installation du package pip:

user@server:~$ sudo apt-get install python3-pip
user@server:~$ sudo rm /usr/bin/python
user@server:~$ sudo ln -s /usr/bin/python3 /usr/bin/python

Installation du package “virtualenv”

user@server:~$ sudo apt install virtualenv

Installation du package “virtualenvwrapper”

user@server:~$ pip3 install virtualenvwrapper
user@server:~$ export WORKON_HOME=~/Envs
user@server:~$ mkdir ~/Envs    
user@server:~$ source ~/.local/bin/virtualenvwrapper.sh

Note:

Il faudra définir dans le .bashrc du user l'export de la variable WORKON_HOME ainsi que le sourcing du script : virtualenvwrapper.sh

Administration

Création d'un virtualenv pour la dernière version d'Ansible

user@server:~$  mkvirtualenv ansible_2.9.6
user@server:~$  pip install ansible==2.9.6

Vérifier la version d'ansible avec la commande : "**ansible --version**"

ansible 2.9.6
  config file = None
  configured module search path = [u'/home/user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/user/Envs/ansible_2.9.6/local/lib/python2.7/site-packages/ansible
  executable location = /home/user/Envs/ansible_2.9.6/bin/ansible
  python version = 2.7.17 (default, Nov  7 2019, 10:07:09) [GCC 7.4.0]

Création d'un autre virtualenv mais cette fois ci pour Ansible 2.7.16

user@server:~$  mkvirtualenv ansible_2.7.16
user@server:~$  pip install ansible==2.7.16

Vérifier la version d'Ansible avec la commande : “ansible –version

ansible 2.7.16
  config file = None
  configured module search path = [u'/home/user/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/user/Envs/ansible_2.7.16/local/lib/python2.7/site-packages/ansible
  executable location = /home/user/Envs/ansible_2.7.16/bin/ansible
  python version = 2.7.17 (default, Nov  7 2019, 10:07:09) [GCC 7.4.0]

Commande

Annexe