8.52. Python-3.12.5

Le paquet Python 3 contient l'environnement de développement Python. Il est utile pour la programmation orientée objet, écrire des scripts, prototyper de plus grands programmes ou pour développer des applications complètes.

Temps de construction approximatif: 2,2 SBU
Espace disque requis: 530 Mo

8.52.1. Installation de Python 3

Préparez la compilation de Python :

./configure --prefix=/usr        \
            --enable-shared      \
            --with-system-expat  \
            --enable-optimizations

Voici la signification des options de configuration :

--with-system-expat

Ce paramètre active la liaison avec la version du système de Expat.

--enable-optimizations

Ce paramètre permet d’établir des étapes d’optimisation approfondis, mais prenant beaucoup de temps. L’interprète est construit deux fois ;les tests effectués pendant la première construction sont utilisés pour concevoir la version finale optimisée.

Compilez le paquet :

make

Certains test sont connus pour ne jamais s'arrêter. Pour tester les résultats, exécutez la suite de tests mais indiquez une limite de 2 minutes pour chaque cas de test :

make test TESTOPTS="--timeout 120"

Pour un système relativement lent vous devriez augmenter la limite de temps. 1 SBU (mesuré lors de la construction de Binutils passe 1 avec un cœur de CPU) devrait suffire. Certains tests sont instables, donc la suite de tests relancera automatiquement les tests en échec. Si un test échoue mais réussi après une relance, il devrait être considéré comme réussi.

Installez le paquet :

make install

À plusieurs reprises dans ce livre, on utilise la commande pip3 pour installer les programmes et les modules Python 3 pour chaque utilisateur en tant que root. Cela entre en conflit avec les recommandations des développeurs de Python : pour installer des paquets dans un environnement virtuel, ou dans le répertoire home d’un utilisateur régulier (en exécutant pip3 en tant que cet utilisateur). Un avertissement multi-lignes s’affiche à chaque fois que pip3 est détecté par l’utilisateur root.

La principale raison de cette recommandation est d’éviter les conflits avec le paquet de gestion du système (dpkg, par exemple). Ce n’est pas un problème, puisque LFS n’a pas de paquet de gestion s’appliquant à l’intégralité du système. pip3 vérifiera également si une nouvelle version est disponible dès qu’il sera exécuté. Étant donné que la résolution du nom de domaine n’est pas encore configuré dans l’environnement chroot de LFS, pip3 ne pourra pas procéder à la recherche d’une mise à jour, et un message d’avertissement s’affichera.

Après avoir lancé le système LFS et établi une connexion au réseau, un nouvel avertissement apparaîtra, prévenant l’utilisateur de mettre à jour pip3 d’après une roue de pré-construction su PyPI (dès qu’une nouvelle version est disponible). LFS considère cependant pip3 comme faisant partie de Python 3, il est donc conseillé de ne pas le mettre à jour indépendamment. Une amélioration depuis une roue pré-construite pourrait aussi nous faire dévier de l’objectif : construire un système Linux sur un code source. L’avertissement à propos d’une nouvelle version de pip3 peut donc lui aussi être ignoré. Vous pouvez, si vous le désirez, désactiver tous ces avertissements en activant la commande suivante, ce qui créera un fichier de configuration :

cat > /etc/pip.conf << EOF
[global]
root-user-action = ignore
disable-pip-version-check = true
EOF
[Important]

Important

Dans LFS et BLFS nous construisons et installons normalement les modules Python avec la commande pip3. Remarquez bien que les commandes pip3 install dans les deux livres doivent être lancées en root à moins qu'il s'agisse d'un environnement virtuel Python. Exécuter pip3 install en tant qu'utilisateur ou utilisatrice non root peut sembler fonctionner, mais cela rendra les modules installés indisponibles pour les autres.

pip3 install ne réinstallera pas les modules déjà installés par défaut. Pour utiliser la commande pip3 install pour mettre à jour un module (par exemple, de meson-0.61.3 vers meson-0.62.0), ajoutez l'option --upgrade à la ligne de commande. S'il est vraiment nécessaire de revenir à une version précédente d'un module ou de réinstaller la même version, ajoutez l'option --force-reinstall --no-deps à la ligne de commande.

Si vous le souhaitez, installez la documentation préformatée :

install -v -dm755 /usr/share/doc/python-3.12.5/html

tar --no-same-owner \
    -xvf ../python-3.12.5-docs-html.tar.bz2
cp -R --no-preserve=mode python-3.12.5-docs-html/* \
    /usr/share/doc/python-3.12.5/html

Voici la signification des commandes d'installation de la documentation :

--no-same-owner (tar) et --no-preserve=mode (cp)

Garantit que les fichiers installés ont la bonne appartenance et les bonnes permissions. Sans ces options, utiliser tar installera les fichiers du paquet avec les valeurs du créateur en amont et ils auraient des permissions restrictives.

8.52.2. Contenu de Python 3

Programmes installés: 2to3, idle3, pip3, pydoc3, python3 et python3-config
Bibliothèque installée: libpython3.12.so et libpython3.so
Répertoires installés: /usr/include/python3.12, /usr/lib/python3 et /usr/share/doc/python-3.12.5

Descriptions courtes

2to3

est un programme Python qui lit du code source Python 2.x et applique une série de corrections pour le transformer en code Python 3.x valide

idle3

est un script enveloppe qui ouvre un éditeur en GUI qui connait Python. Pour que ce script puisse tourner, vous devez avoir installé Tk avant Python pour que le module python Tkinter soit construit.

pip3

L'installateur de paquets pour Python. Vous pouvez utiliser pip pour installer des paquets de Python Package Index et d'autres répertoires.

pydoc3

est l'outil de documentation de Python

python3

est un langage de programmation interprété, interactif et orienté objet