8.50. Python-3.10.6

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

Temps de construction approximatif: 3.4 SBU
Espace disque requis: 283 Mo

8.50.1. Installation de Python 3

Préparez la compilation de Python :

./configure --prefix=/usr        \
            --enable-shared      \
            --with-system-expat  \
            --with-system-ffi    \
            --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.

--with-system-ffi

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

--enable-optimizations

Ce paramètre active les optimisations stables, mais coûteuses.

Compilez le paquet :

make

Lancer les tests n'est pour l'instant pas recommandé. Les tests sont connus pour bloquer indéfiniment dans l'environnement partiel de LFS. Si vous le souhaitez, vous pouvez relancer les tests à la fin de ce chapitre ou quand vous réinstallerez Python 3 dans BLFS. Pour tout de même lancer les tests, lancez make test.

Installez le paquet :

make install

À plusieurs endroits on utilise la commande pip3 pour installer des programmes et des modules Python 3 pour tous les utilisateurs et utilisatrices en tant que root. Cela entre en conflit avec la recommandation des développeurs Python d'installer les paquets dans un environnement virtuel ou le répertoire personnel des utilisateurs et utilisatrices (en exécutant pip3 en tant que cet utilisateur ou cette utilisatrice). À cause de cela, un avertissement sur plusieurs lignes est affiché lorsque vous utilisez pip3 en tant qu'utilisateur root. La raison principale de cette recommandation est d'éviter un conflit avec le gestionnaire de paquets du système (dpkg par exemple), mais LFS n'a pas de gestionnaire de paquets système donc ce n'est pas un problème. En plus, pip3 essaiera de vérifier les nouvelles versions de lui-même s'il est lancé. Comme la résolution des noms de domaine n'est pas encore configurée dans l'environnement chroot de LFS, il n'arrivera pas à vérifier si une nouvelle version existe et produira un avertissement. Une fois démarré sur le système LFS et la connexion réseau paramétrée, il produira un avertissement demandant à l'utilisateur ou l'utilisatrice de le mettre à jour à partir d'un weel préconstruit sur PyPI si une nouvelle version est disponible. Mais LFS considère pip3 comme faisant partie de Python 3, donc il ne devrait pas être mis à jour séparément et une mise à jour à partir d'un wheel préconstruit dévierait du but qui est de construire un système Linux à partir du code source. Donc l'avertissement concernant une nouvelle version de pip3 devrait aussi être ignoré. Si vous le souhaitez, supprimez ces avertissements en exécutant la commande suivante :

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.10.6/html

tar --strip-components=1  \
    --no-same-owner       \
    --no-same-permissions \
    -C /usr/share/doc/python-3.10.6/html \
    -xvf ../python-3.10.6-docs-html.tar.bz2

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

--no-same-owner et --no-same-permissions

S'assure 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.

8.50.2. Contenu de Python 3

Programmes installés: 2to3, idle3, pip3, pydoc3, python3 et python3-config
Bibliothèques installées: libpython3.10.so et libpython3.so
Répertoires installés: /usr/include/python3.10, /usr/lib/python3 et /usr/share/doc/python-3.10.6

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