Compiler et installer Python 3 depuis les sources sous Linux
Il est parfois nécessaire de compiler et installer Python 3 directement depuis les sources, notamment si nous voulons utiliser la dernière version disponible et que celle-ci n’est pas disponible dans les packages officiels de notre distribution.
Dans cet article nous verrons comment compiler et installer Python 3 depuis les sources sous Linux pour la plupart des distributions actuelles.
Avant de commencer
Dans le cadre de cet article, nous nous focaliserons sur Python 3.12 qui est disponible en version stable de puis le 2 octobre mais n’est pas encore installable via les dépôts de package de la majorité des distributions.
Etant donné que nous allons compiler et installer Python depuis les sources, nous allons devoir installer une série d’outils et de librairies nécessaires à la compilation. C’est d’ailleurs la seule partie qui diffère selon les distributions.
Globalement nous pouvons découper la procédure en quelques étapes:
- Installer les outils et librairies nécessaires à la compilation
- Télécharger les sources et extraire les sources
- Configurer et préparer les sources
- Compiler les sources
- Installer les fichiers compilés
- Tester l’installation
Installer les outils et librairies nécessaires à la compilation
Cette étape variera en fonction de notre distribution. Une connaissance de base des gestionnaires de package comme apt, dnf ou encore pacman nous sera utile ici.
Ubuntu, Debian et leurs dérivés…
sudo apt install build-essential gdb lcov pkg-config libbz2-dev \
libffi-dev libgdbm-dev libgdbm-compat-dev \
liblzma-dev libncurses5-dev libreadline6-dev \
libsqlite3-dev libssl-dev lzma lzma-dev tk-dev \
uuid-dev zlib1g-dev wget
ArchLinux
sudo pacman -S base-devel wget
Red Hat, RockyLinux, Fedora, CentOS, …
sudo dnf groupinstall "Development Tools"
sudo dnf install zlib-devel bzip2 bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel xz xz-devel \
libffi-devel findutils ncurses-devel wget
Télécharger et extraire les sources
Une fois les outils et librairies nécessaires installés, nous pouvons nous occuper du téléchargement des sources de Python et de l’extraction de celles-ci.
Pour cet article, nous créerons un dossier ~/sources dans lequel nous téléchargerons le fichier des sources et dans lequel nous allons ensuite l’extraire.
Nous pouvons télécharger les sources directement depuis le site officiel de Python https://www.python.org/ftp/python/. Nous y trouvons un dossier par version de python. Ici nous allons installer Python 3.12.
Création du dossier pour le téléchargement et la compilation
mkdir -p ~/sources
Téléchargement des sources
cd ~/sources
wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
Une fois le téléchargement terminé, nous pouvons extraire les sources.
Extraction des sources
Nous sommes donc toujours dans le dossier ~/sources
.
tar xvf Python-3.12.0.tgz
Une fois l’extraction terminée, un nouveau dossier ~/sources/Python-3.12
est créé et contient toutes les sources de Python.
Compiler et installer Python
Préparation et configuration des sources
Nous devons maintenant configurer les sources avant de lancer la compilation.
cd Python-3.12.0
./configure --enable-optimizations --with-ensurepip=install
configure
est l’outil de configuration et de préparation de sources. Nous lui passons ici deux options:
--enable-optimizations
: produit un environnement Python plus efficace, mais la compilation sera plus longue.--with-ensurepip=install
: installe pip (un gestinnaire de packages python) et le nomme en fonction de la version.
Cette étape peut prendre quelques minutes. Si elle se termine par une erreur, il est fort probable que certaines librairies nécessaires à la compilation sont manquantes. Dans ce cas, retournez à la première étape, l’installation des outils et librairies nécessaires à la compilation.
Si la configuration s’est bien passée, nous pouvons maintenant compiler les sources.
Compiler les sources de Python
make
Pour gagner du temps vous pouvez aussi exécuter la compilation sur plusieurs processus en parallèle, pour ça vous pouvez indiquer le nombre de processus avec l’option -n
. Ce qui donne…
make -j n
Remplacez ici n
par le nombre de processus que vous voulez utiliser en parallèle pendant la compilation. vous pouvez globalement donner un nombre allant jusqu’au nombre de coeurs de processeur dont vous disposez sur votre machine.
La compilation prendra de quelques minutes jusqu’à quelques dizaines de minutes selon les performances de votre machine.
Une fois la compilation terminée, nous allons pouvoir passer à l’installation de Python.
Installer Python
Cette étape requiert des droits privilégies et doit donc être exécutée par root
ou via la commande sudo.
Nous allons ici effectuer une installation de type altinstall, ce qui signifie que Python sera installé en utilisant son nom de version. Par exemple l’interpréteur sera python3.12
, la plupart des fichiers seront placés dans /usr//local/lib/python3.12
. L’avantage de ce choix est que cela n’écrase pas la version de Python 3 déjà installée sur le système.
sudo make altinstall
Cette étape prendra de nouveau quelques minutes. Un fois terminée, nous avons Python 3.12 installé et fonctionnel.
Tester Python
Nous pouvons maintenant tester notre installation de Python 3.12.
Afficher la version de python
python3.12 --version
steve@just-sudo-it python3.12 → python3.12 --version
Python 3.12.0
steve@just-sudo-it python3.12 →
Lancer l’interpréteur Python
python3.12
steve@just-sudo-it ~ → python3.12
Python 3.12.0 (main, Oct 5 2023, 08:44:42) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
steve@just-sudo-it ~ →
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.