Python-3.12.5

Introduction à Python 3

Le paquet Python 3 contient l'environnement de développement Python. C'est utile pour la programmation orientée objet, l'écriture de scripts, le prototypage de gros programmes ou le développement d'applications entières.

[Note]

Note

Python 3 a été installé dans LFS. La seule raison pour le reconstruire ici est la nécessité d'avoir des modules facultatifs ou pour mettre à jour ce paquet.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

[Important]

Important

Si vous mettez à jour vers une nouvelle version mineure de Python-3 (par exemple, de Python-3.11.x à Python-3.12.0), vous devrez réinstaller tous les modules Python3 que vous avez installé. Vous devriez également réinstaller les paquets qui génèrent des modules Python3, dont GLib-2.80.4 (avec GObject Introspection), libxml2-2.13.3, opencv-4.10.0, FontForge-20230101, gnome-tweaks-46.1,Samba-4.20.4 et Graphviz-12.1.0 (si swig est installé).

Avant de mettre à jour, vous pouvez récupérer une liste des modules installés avec pip3 list. La liste peut être incomplète car certains modules Python ne sont pas installés avec pip3, comme par exemple le module cracklib installé par CrackLib-2.10.2. Utilisez ls /usr/lib/python3.minor/site-packages pour une liste complète.

Les modules Python de LFS devront également être réinstallés : flit-core, wheel, setuptools, meson, MarkupSafe et Jinja2.

Informations sur le paquet

  • Téléchargement (HTTP) : https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 02c7d269e077f4034963bba6befdc715

  • Taille du téléchargement : 19 Mo

  • Estimation de l'espace disque requis : 335 Mo (plus 59 Mo pour les tests)

  • Estimation du temps de construction : 1,6 SBU (plus 0,6 SBU pour les tests, tous deux avec parallélisme = 4)

Téléchargement facultatif supplémentaire

Dépendances de Python 3

Recommandées

Facultatives

BlueZ-5.77, GDB-15.1 (requis pour certains tests), Valgrind-3.23.0 et libmpdec

Facultatives (pour les modules supplémentaires)

libnsl-2.0.1, Tk-8.6.14 et Berkeley DB (obsolète)

Notes des auteurs : https://wiki.linuxfromscratch.org/blfs/wiki/Python3

Installation de Python 3

Installez Python 3 en exécutant les commandes suivantes :

CXX="/usr/bin/g++"               \
./configure --prefix=/usr        \
            --enable-shared      \
            --with-system-expat  \
            --enable-optimizations &&
make

Certains tests sont connus pour parfois freezer. Donc 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 assez lent vous devrez peut-être augmenter la limite à 1 SBU (mesuré lors de la construction de Binutils passe 1 avec un cœur de CPU). Certains tests sont peu fiables, donc la suite de test relancera automatiquement les tests en échec. Si un test échoue mais passe après avoir été relancé, vous pouvez considérer qu'il a réussit.

Sur plus de 42 000 tests, les suivants sont connus pour échouer : test__xxsubinterpreters, test_import, test_interpreters et test_threading.

Maintenant, en tant qu'utilisateur root :

make install

Si vous mettez à jour et que la documentation a été téléchargée, installez-la éventuellement en tant qu'utilisateur root :

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

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

Explication des commandes

CXX="/usr/bin/g++" ./configure ... : empêche un message embêtant pendant la configuration.

--with-system-expat : Ce paramètre active le lien contra la version du système de Expat.

--enable-optimizations : ce paramètre active les optimisations stables mais coûteuses.

--with-lto : ce paramètre facultatif active l'optimisation à l'édition des liens. De manière inhabituelle, cela crée un fichier /usr/lib/python3.12/config-3.12-<arch>-linux-gnu/libpython3.12.a bien plus grand et une légère augmentation du temps de compilation de Python. Les résultats à l'exécution n'ont pas l'air d'être plus rapides avec cela.

Configuration de Python 3

Pour que python3 trouve la documentation installée, vous devez ajouter la variable d'environnement suivante au profil individuel de l'utilisateur ou du système :

ln -svfn python-3.12.5 /usr/share/doc/python-3

et ajoutez la variable d'environnement suivante au profil individuel de l'utilisateur ou du système :

export PYTHONDOCS=/usr/share/doc/python-3/html

Contenu

Programmes installés: 2to3 (lien symbolique) et 2to3-3.12, idle3 (lien symbolique) et idle3.12, pip3 et pip3.12, pydoc3 (lien symbolique) et pydoc3.12, python3 (lien symbolique) et python3.12 et python3-config (lien symbolique) et python3.12-config
Bibliothèques installées: libpython3.12.so et libpython3.so
Répertoires installés: /usr/include/python3.12, /usr/lib/python3.12 et /usr/share/doc/python-3.12.5

Descriptions courtes

idle3

est un script enveloppe qui ouvre un éditeur graphique Python. Pour que ce script fonctionne, vous devez avoir installé Tk avant Python pour que le module Python de Tkinter soit construit

pydoc3

est l'outil de documentation de Python

python3

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

python3.12

est un nom spécifique à la version du programme python