par , 19/11/2022 à 06h13 (1288 Affichages)
Bonjour,
Ce billet pour décrire comment compiler n'importe quelle version de python sur une distribution debian and co.
- Définition
La compilation consiste à transformer le code source d’une application en un code binaire qui peut ensuite être exécuté.
- Avertissement:
Bien que la procédure pour compiler python soit relativement simple, compiler comporte des risques. Aussi si vous êtes un débutant linux des premières heures, passez votre chemin
<!> Le Pc doit être branché sous secteur pendant toute la procédure
- Installer les dépendances qui vont bien:
1 2 3
| apt install make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev \
xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev |
- Téléchargement de la version de python souhaitée:
Allez sur le site de python https://www.python.org/downloads/source/
Cherchez la version de python qui vous intéresse ,puis , notez le lien correspondant à Download Gzipped source tarball que vous transmettrez à wget.
Exemple avec python3.10.7:
1 2
| wget https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz
tar -xf Python-3.10.7.tgz |
- La compilation
Se placer dans le répertoire du téléchargement:
Préparer le travail:
./configure --enable-optimizations --enable-shared
la commande effectue notamment plusieurs vérifications pour s'assurer que toutes les dépendances nécessaires sont présentes et écrit un fichier Makefile qui contiendra les ordres de compilation.
Lancer la compilation:
L'option -j permet d'utiliser plusieurs coeurs du processeur ce qui permet d'accélérer la compilation.
La commande nproc donne le nombre de coeurs qui équipe votre machine.
On finalise:
altinstall installe le binaire python dans le répertoire /usr/local/bin/ , ce qui permet d'installer n'importe quelle version de python sans que cela interfère avec les versions de python installées par défaut.
- Le mot de la fin:
Voilà, python3.10 est installé:
1 2 3
| >python3.10 -V
>Python 3.10.7
> |
Vous devez l'utiliser dans un environnement virtuel afin de pouvoir installer toutes les dépendances(bibliothèque python) nécessaires à votre projet sans que cela interfère avec d'autres versions qui seraient présentes sur votre système. Voir: https://docs.python.org/fr/3/tutorial/venv.html