8.52. Python-3.12.7

Python 3 pakken inneholder Python utviklingsmiljøet. Den er nyttig for objektorientert programmering, skriving av skript, prototyping av store programmer, eller utvikle hele applikasjoner. Python er et tolket dataspråk.

Omtrentlig byggetid: 2.2 SBU
Nødvendig diskplass: 530 MB

8.52.1. Installasjon av Python 3

Forbered Python for kompilering:

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

Betydningen av konfigureringsalternativene:

--with-system-expat

Denne bryteren muliggjør kobling mot systemversjonen av Expat.

--enable-optimizations

Denne bryteren muliggjør omfattende, men tidkrevende, optimaliseringstrinn Tolken bygges to ganger; tester utført på det første bygget brukes til å forbedre den optimaliserte endelige versjonen.

Kompiler pakken:

make

Noen tester er kjent for iblant å henge på ubestemt tid. Så for å teste resultatet, kjør testpakken, men sett en tidsbegrensning på 2 minutter for hvert testforsøk:

make test TESTOPTS="--timeout 120"

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

Installer pakken:

make install

Vi bruker pip3 kommandoen til å installer Python 3 programmer og moduler for alle brukere som root flere steder i denne boken. Dette er i konflikt med Python utviklernes anbefaling: å installere pakker i et virtuelt miljø eller inn i hjemmemappen til en vanlig bruker (ved å kjøre pip3 som denne brukeren). En advarsel med flere linjer utløses når pip3 er utstedt av root brukeren.

Hovedgrunnen for anbefalingen er å unngå konflikter med systemets pakkeansvarlig (dpkg, for eksempel). LFS har ikke en systemomfattende pakkebehandling, så dette er ikke et problem. Også pip3 vil se etter en ny versjon av seg selv når den kjøres. Siden domenenavnoppløsning ikke er konfigurert ennå i LFS chroot miljøet, pip3 kan ikke sjekke for en ny versjon av seg selv, og vil produsere en advarsel.

Etter at vi har startet opp LFS systemet og satt opp en nettverkstilkobling, en annen advarsel vil bli gitt, og ber brukeren om å oppdatere pip3 fra et forhåndsbygd wheel på PyPI (når en ny versjon er tilgjengelig). Men LFS vurderer pip3 å være en del av Python 3, så det burde ikke oppdateres separat. Dessuten vil en oppdatering fra et forhåndsbygd wheel avvike fra vårt mål: å bygge et Linuxsystem fra kildekoden. Så advarsel om en ny versjon av pip3 bør ignoreres om vi vil. Hvis du ønsker det, kan du undertrykke alle disse advarslene ved å kjøre følgende kommando, som oppretter en konfigurasjonsfil:

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

Viktig

I LFS og BLFS bygger og installerer vi normalt Pythonmoduler med pip3 kommandoen. Vennligst pass på at pip3 install kommandoer i begge bøkene kjøres som root brukeren med mindre det er for et virtuelt Python-miljø å kjøre en pip3 install som en ikke-root bruker kan synes å fungerer fint, men det vil føre til at den installerte modulen blir utilgjengelig av andre brukere.

pip3 install vil ikke installere en allerede installert modul som standard. Når du bruker pip3 install kommandoen for å oppgradere en modul (for eksempel fra meson-0.61.3 til meson-0.62.0), sett inn alternativet --upgrade inn i kommandolinjen. Hvis det virkelig er nødvendig å nedgradere en modul, eller installer samme versjon på nytt av en eller annen grunn, sett inn --force-reinstall --no-deps inn i kommandolinjen.

Hvis ønskelig, installer den forhåndsformaterte dokumentasjonen:

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

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

Betydningen av dokumentasjonsinstallasjons kommandoene:

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

Sørger for at de installerte filene har riktig eierskap og tillatelser. Uten disse alternativene, tar vil installere pakkefilene med oppstrømsskaperens verdier og filer vil ha restriktive tillatelser.

8.52.2. Innhold i Python 3

Installerte programmer: 2to3, idle3, pip3, pydoc3, python3, og python3-config
Installert bibliotek: libpython3.12.so og libpython3.so
Installerte mapper: /usr/include/python3.12, /usr/lib/python3, og /usr/share/doc/python-3.12.7

Korte beskrivelser

2to3

er et Python program som leser Python 2.x kildekoden og bruker en serie reparasjoner for å forvandle den til gyldig Python 3.x kode

idle3

er et innpakningsskript som åpner et Python bevisst GUI tekstprogram. For at dette skriptet skal kjøre, må du ha installert Tk før Python slik at Tkinter Pythonmodulen blir bygget.

pip3

Pakkeinstallasjonsprogrammet for Python. Du kan bruke pip til å installere pakker fra Python Pakke Indeks og andre indekser

pydoc3

er Python dokumentasjonsverktøy

python3

er tolken for Python, et tolket, interaktiv, objektorientert programmeringsspråk