Python-3.12.7

Introduksjon til Python 3

Python 3 pakken inneholder Python utviklingsmiljø. Dette er nyttig for objektorientert programmering, skriving av skript, prototyping av store programmer eller utvikling av hele applikasjoner.

[Notat]

Notat

Python 3 ble installert i LFS. Den eneste grunnen til å gjenoppbygge den her er hvis valgfrie moduler er nødvendig, eller for å oppgradere denne pakken.

[Notat]

Notat

Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.

[Viktig]

Viktig

Hvis du oppgraderer til en ny Python-3 minor versjon (f.eks. fra Python-3.11.x til Python-3.12.0), må du installere på nytt eventuelle Python3 moduler du har installert. Du burde også installer pakker på nytt som genererer Python3 moduler inkludert GLib-2.82.1 (med GObject Introspection), libxml2-2.13.4, opencv-4.10.0, FontForge-20230101, gnome-tweaks-46.1, Samba-4.21.0, og Graphviz-12.1.2 (hvis swig er installert).

Før du oppgraderer, kan du få en liste over moduler installert med pip3 list. Listen kan være ufullstendig siden noen Python moduler ikke er installert med pip3, for eksempel cracklib modulen installert med CrackLib-2.10.2. Bruk ls /usr/lib/python3.minor/site-packages for en omfattende liste.

Python modulene fra LFS må også installeres på nytt: flit-core, wheel, setuptools, meson, MarkupSafe, og Jinja2.

På systemd systemer er det også nødvendig å installere MarkupSafe og Jinja2 moduler på nytt fra LFS: https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/markupsafe.html og https://www.linuxfromscratch.org/lfs/view/systemd/chapter08/jinja2.html.

Pakkeinformasjon

  • Nedlasting (HTTP): https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tar.xz

  • Nedlasting MD5 sum: c6c933c1a0db52597cb45a7910490f93

  • Nedlastingsstørrelse: 19 MB

  • Estimert diskplass som kreves: 337 MB (legg til 60 MB for tester)

  • Estimert byggetid: 1.5 SBU (legg til 0.7 SBU for tester; begge bruker parallellisme=4)

Ekstra Valgfri Nedlasting

Python 3 Avhengigheter

Anbefalt

Valgfri

BlueZ-5.78, GDB-15.2 (nødvendig for noen tester), Valgrind-3.23.0, og libmpdec

Valgfri (For Tilleggsmoduler)

libnsl-2.0.1, Tk-8.6.15, og Berkeley DB (deprecated)

Redaktørens notater: https://wiki.linuxfromscratch.org/blfs/wiki/Python3

Installasjon av Python 3

Installer Python 3 ved å kjøre følgende kommandoer:

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

Noen tester er kjent for å av og til henge på ubestemt tid. Så for å teste resultatene, kjør testpakken, men sett en tidsbegrensning på 2 minutter for hver testforsøk:

make test TESTOPTS="--timeout 120"

For et relativt tregt system må du kanskje øke tidsbegrensningen og 1 SBU (målt når du bygger Binutils passerer 1 med én CPU kjerne) bør være nok. Noen tester er flassete, så testpakken vil kjøre mislykkede tester automatisk på nytt. Hvis en test mislyktes, men deretter bestått når den kjøres på nytt, bør den anses som bestått.

Av over 42 000 tester er følgende kjent for å mislykkes: test__xxsubinterpreters, test_import, test_interpreters, og test_threading.

Nå, som root bruker:

make install

Hvis oppgraderingen og dokumentasjonen er lastet ned, kan du eventuelt installere det som root bruker:

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

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

Parameterforklaringer

CXX="/usr/bin/g++" ./configure ...: Unngå en irriterende melding under konfigurasjonen.

--with-system-expat: Denne bryteren muliggjør kobling mot systemversjonen av Expat.

--enable-optimizations: Denne bryteren aktiverer stabile, men dyre, optimaliseringer.

--with-lto: Denne valgfrie bryteren muliggjør tykk Link Time Optimization. Uvanlig skaper det en mye større /usr/lib/python3.12/config-3.12-<arch>-linux-gnu/libpython3.12.a med en liten økning i kompileringstiden til Python. Kjøretidsresultater ser ikke ut til å vise noen fordel av å gjøre dette.

Konfigurere Python 3

For at python3 skal finne den installerte dokumentasjon, opprett følgende versjonsuavhengig symbolkobling:

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

og legg til følgende miljøvariabel til den enkelte brukers eller systemets profil:

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

Innhold

Installerte Programmer: 2to3 (symlenke) og 2to3-3.12, idle3 (symlenke) og idle3.12, pip3 og pip3.12, pydoc3 (symlenke) og pydoc3.12, python3 (symlenke); og python3.12, og python3-config (symlenke) og python3.12-config
Installerte Biblioteker: libpython3.12.so og libpython3.so
Installerte Mapper: /usr/include/python3.12, /usr/lib/python3.12, og /usr/share/doc/python-3.12.7

Korte Beskrivelser

idle3

er et innpakningsskript som åpner en Python bevisst GUI redigerer. For at dette skriptet skal kjøre, må du ha installert Tk før Python sånn at Tkinter Python modul blir bygget

pydoc3

er Python dokumentasjonsverktøy

python3

er en tolket, interaktiv, objektorientert programmeringsspråk

python3.12

er et versjonsspesifikt navn for python programmet