Compiler et installer Python dans l'espace d'un utilisateur

Voici comment installer une version de python dans le home local d'un utilisateur spécifique. Cette recette peut être utile pour faire cohabiter plusieurs versions de python sur un même système ou tester si votre programme fonctionne avec la dernière version de python.

On commence par les dépendances, il se peut que selon votre version de linux la commande suivante doive être adaptée, celle ci fonctionne bien sous Linux Mint 19 :


sudo apt-get install build-essential libreadline-dev tk8.6-dev libsqlite3-dev libgdbm-dev libreadline-dev liblzma-dev libbz2-dev libncurses5-dev libssl-dev python3-dev tk-dev libffi-dev

On va créer les différents répertoires :


mkdir localpython
cd localpython
mkdir python370
mkdir sources
cd sources

Téléchargeons les sources de python, ici la 3.7.0 du 27 juin 2018 :


wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar -xvf Python-3.7.0.tar.xz
cd Python-3.7.0 

Sur la commande suivante c'est l'option «--prefix» qui est importante, c'est elle qui permet d'installer python dans un repertoire spécifique de votre espace utilisateur (ici /home/user pour l'exemple) :


./configure --prefix=/home/user/localpython/python370
make
make install

Si tout s'est bien passé il ne reste plus qu'a tester !


cd ~
/home/rtrjl/localpython/python370/bin/python3.7 -m venv env-py370
 . env-py370/bin/activate
python

Si l'invite s'affiche, bravo, cette version de python est installée dans l'espace utilisateur :-)