Miten tuo asentaa uudemman Pythonin? Sehän pitää kääntää, joten asentaako se johonkin sandboxiin kaikki tarvittavat työkalut? Vai tuleeko tuolta kaikki mahdolliset Python-versiot valmiiksi käännettynä? Entä wheelit?
Debianissa muuten Python-paketit pitää käytännössä asentaa virtuaaliympäristöön muutenkin.
Yksinkertaisimmillaan Python-sovelluksen asennuspaketti on "wheel", joka sisältää pakattuna sovelluksen lähdekoodin, tiedon sovelluksen ulkoisista vaatimuksista ja tiedon sovelluksen mahdollisista entry pointeista. Ulkoisia vaatimuksia ovat mm. Pythonin ja systeemikirjaston versio sekä muut tarvittavat kirjastot ja niiden versiot.
Etenkin linuxeissa distron mukana tullutta Pythonia ja sen kirjastoja ei pidä muokata. Moni asia voi särkyä. Siksi jokainen distron ulkopuolinen Python-sovellus joko pitää laatia niin, että se ei tarvitse mitään distro-Pythoniin kuulumatonta, tai sitten sovellukselle pitää rakentaa oma Python-ympäristö ("venv"), joka "aktivoidaan" (pannaan polun alkuun) sovellusta käynnistettäessä.
Yksinkertaisin tapa wheel-paketoidun sovelluksen asentamiseen käyttää
pipx-nimistä sovellusta, siis esim:
$ sudo apt install pipx
$ pipx install sovellus.paketti.whl
jolloin pipx tekee sovellukselle oman ympäristön, kopioi/linkittää sinne distro-Pythonin systeemikirjastoineen, imuroi tarvittavat lisukkeet ja virittää komennot sovelluksen entry pointeille. Tämä onnistuu jos ja vain jos sovellukselle kelpaa distro-Pythonin versio ja jos distro-Pythonin systeemikirjastosta ei puutu mitään sovelluksen tarvitsemaa.
Distrojen Python saattaa olla melko vanha, ja systeemikirjastosta on usein jätetty jotain "turhaa" joko erikseen asennettavaksi tai kokonaan pois. Distro-Python siis on vain distron omaan käyttöön.
Tätänykyä muodikkain Python-projektien hallintaväline on tuote nimeltä
uv, jonka voi asentaa monin tavoin, esimerkiksi pipx-ohjelman avulla:
$ pipx install uv
Kun tämä on tehty, voi wheel-paketin asentaa näin:
$
uv tool install sovellus.paketti.whl
tai jopa
$
uv tool install --python 3.14 sovellus.paketti.whl
jolloin sovellukselle luodaan täydellinen distrosta riippumaton Python-ympäristö.
Lisätietoja:
docs.astral.sh/uv/
---
Jos Python-sovelluksen laatija on nähnyt hiukan enemmän vaivaa, hän on tietysti käärinyt sovelluksen
AppImage-pakettiin. Se onnistuu varsin helposti esim.
cx_freeze -nimisellä välineellä.