Pour pouvoir utiliser diverses versions de Python et de modules tiers sans interférer avec ses versions système il est recommandé d'utiliser des environnements virtuels.

Avantages:
* Simple à créer.
* Aucun risque pour le système, l'environnement est créé sans les droits d'administrateur.
* Permet de tester des modules tiers de différentes versions.
* Permet de tester du code en développement, car sans risque.
* Simple à désinstaller, il suffit de l'effacer.

Pour connaître sa version système il suffit d'entrer python3 dans un terminal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
vincent@djoliba:~$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
Ici, nous avons donc la version 3.6.7

Installons une version plus récente.

Tout d'abord créons, dans notre home, un dossier unique où seront installés toutes nos versions de Python.

On le nomme comme on veut, dans cet exemple ce sera .localpythons. Il sera caché car on ne doit jamais le consulter.

Il faut maintenant se doter de quelques outils: le module de Python build-dep et les libs libssl-dev openssl.

Pour ces dernières utilisons les paquets officiels:
Exemple sur Debian, Ubuntu et dérivées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
sudo apt-get install libssl-dev openssl
Note: Sur les os basés sur les paquets rpm (Fedora, OpenSUSE) ce sera libssl-devel

Pour le module Python il faut choisir celui de la version système. 3.6 dans cet exemple.
Debian ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
sudo apt-get build-dep python3.6
Fedora, Red Hat Enterprise Linux et autres yum based systems:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
sudo yum install yum-utils
sudo yum-builddep python3
Fedora et autres DNF based systems:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
sudo dnf install dnf-plugins-core
sudo dnf builddep python3
Maintenant, rendons-nous ici https://www.python.org/downloads/source/ pour choisir notre nouvelle version de Python.

La dernière version à ce jour est la 3.7.2, cliquons sur le lien et en bas de la nouvelle page choisissons, pour Linux, le paquet Gzipped source tarball

Une fois ce paquet téléchargé il faut le décompresser.
Click droit sur le paquet et choisir Extraire ici
Ou dans un terminal:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
tar zxvf Python-3.7.2.tgz
Ensuite il faut configurer, compiler et installer cette version
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
cd Python-3.7.2
./configure --prefix=$HOME/.localpythons --with-pydebug
make
make install
Et enfin, créons cet environnement virtuel.
Dans cet exemple on va le nommer py372_venv
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
~/.localpythons/bin/python3.7 -m venv ~/py372_venv
Maintenant nous pouvons tester notre install en activant l'environnement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
cd ../py372_venv
source bin/activate
python
Python 3.7.2 (default, Mar 12 2019, 17:31:29) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
Pensez donc toujours à activer l'environnement pour pouvoir utiliser cette version de Python. Et pour installer des modules tiers aussi.
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
source bin/activate
pip install pillow
et pillow sera installé pour python-3.7.2

Et plein d'infos ici: https://devguide.python.org/setup/


Rem: Je n'ai pas vu de lien dans la FAQ Python pour pousser ce type d'article, ça peut se faire automatiquement ?