Python-päivitysopas: hallittu siirtymä nykyiseen versioon

13. marraskuuta 2025
Paavo Pauklin

Python voi näyttää vakaalta, kunnes jokin kirjasto, pilvipohjainen suoritusympäristö tai tietoturvakäytäntö pakottaakin yllättäen päivittämään järjestelmän. Tässä oppaassa kerromme, milloin olisi syytä siirtyä uuteen versioon, missä riskit piilevät ja miten muutokset voidaan pitää ennustettavina.

Miksi tämä on ajankohtaista juuri nyt?

Pythonin kirjastojen ekosysteemi kehittyy nopeasti. Suosittuja kehysrakenteita, datapinoja ja pilvipalveluntarjoajia päivitetään jatkuvasti uusimpiin 3.x-versioihin. Jos versionne jää liian paljon jälkeen, se aiheuttaa tietoturvariskejä, katkaisee jatkuvan integraation (CI) prosessit ja vaikeuttaa rekrytointia. Jälkeen jääminen voi myöskin estää tai vaikeuttaa tekoälyn käyttöönottoa, sillä pilvipohjaiset tekoälyn sovelluskehityspaketit (SDK) ja hallinnoidut suoritusympäristöt perustuvat nykyisiin Python 3.x -versioihin. Ratkaisuna tähän on päivittää säännöllisesti, eikä ajautua kriittisiin pelastusprojekteihin.

Johdon tarkistuslista ennen päivitystä

  1. Tukijakso: Mitä Python-versiota käytämme ja mikä on sen nykyinen tila?
  2. Yhteensopivuus kehysrakenteiden kanssa: Tukevatko tärkeimmät kehysrakenteemme ja kirjastomme kohdeversiota?
  3. Turvaverkot: läpäistäänkö liiketoimintatason testit luotettavassa staging-ympäristössä?
  4. Paketointi ja koontiversiot: Ovatko koontityökalumme, kuvamme ja wheel-tiedostomme yhteensopivia kohdeympäristön kanssa?
  5. Käyttöönottosuunnitelma: Voimmeko toteuttaa julkaisun vaiheittain ja mitata sen vaikutuksia ennen täysimittaista käyttöönottoa?

Korjatkaa ensin epäselvät vastaukset. Tämä vähentää kustannuksia ja ongelmia myöhemmässä vaiheessa.

Suunnitelkaa ja toteuttakaa ilman turhaa draamaa

Valitkaa moderni 3.x-versio, jota kehysympäristönne ja palveluntarjoajanne tukevat. Testatkaa ratkaisu lyhyellä yhteensopivuustestillä. Julkaiskaa päivitys vaiheittain, seuratkaa palvelun toimintatilaa ja ottakaa se käyttöön vasta sitten, kun tulokset ovat vakaita. Käsitelkää kaikkia tietomuutoksia huolellisesti, jotta vanha ja uusi koodi voivat toimia rinnakkain siirtymävaiheen aikana.

Python tänään: versiokohtainen katsaus

Painopisteemme on nykyisissä Python 3.x -versioissa. Vanhemmat 3.x-versiot ja Python 2.7 eivät enää kuulu useimpien ekosysteemien ja pilvipalveluiden tuen piiriin.

Python 3.13
Tämä on useiden tiimien nykyinen lähtökohta. Kirjastojen kehittäjät siirtyvät tähän versioon jo varhaisessa vaiheessa, ja uudemmat käyttöjärjestelmäkuvat, tietoturvakäytännöt ja rakennustyökalut edellyttävät sitä.
Miksi tällö on merkitystä: saatte käyttöönne uusia standardikirjaston ominaisuuksia, suorituskyvyn parannuksia sekä laajimman mahdollisen tuen wheel-paketeille ja palveluntarjoajien runtime-ympäristöille.
Riskit, jos jäätte jälkeen: yhteistyökumppanit ja datakirjastot optimoivat tukensa ensisijaisesti Python 3.13:lle, ja CI-imaget alkavat vähitellen erkaantua ajantasaisesta ympäristöstä.

  1. Julkaistu 7. lokakuuta 2024 
  2. Aktiivinen tuki päättyy 1.10.2026 
  3. Tietoturvatuki päättyy 31.10.2029

Python 3.12
Erittäin vakaa lähtökohta. Laaja tuki tärkeimmiltä kehysrakenteilta, datapinoilta ja pilvipalveluiden toiminnoilta.
Mitä tämä jää välistä verrattuna versioon 3.13: ekosysteemin nopein käyttöönotto sekä joitakin suorituskyky- ja tyyppitarkistuksen parannuksia, joita uudet kirjastot edellyttävät.
Käytännönläheinen lähestymistapa: sopii hyvin väliaikaiseksi vaiheeksi, kun vahvistatte testejänne. Tämän jälkeen voitte sitten suunnitella hallitun siirtymisen 3.13 versioon.

  1. Julkaistu 2. lokakuuta 2023 
  2. Aktiivinen tuki päättyi 2. huhtikuuta 2025 
  3. Tietoturvatuki päättyy 31. lokakuuta 2028.

Python 3.11
Toimii yhä edelleen, mutta ongelmat kuitenkin lisääntyvät. Joka vuosineljänneksellä yhä useammat projektit luopuvat vanhemmista versioista. Joudutte siis kiinnittämään yhä useampia riippuvuuksia ja tyytymään hitaampiin tietoturvapäivityksiin.
Miksi tällä on merkitystä: ylläpitotyön kasvu, heikentynyt oletusturva sekä yhä useammat ”vaatii 3.12+ tai 3.13+” -ilmoitukset suosituissa kirjastoissa ja SDK-paketeissa.

  1. Julkaistu 24. lokakuuta 2022 
  2. Aktiivinen tuki päättyi 1.4.2024 
  3. Tietoturvatuki päättyy 31.10.2027.

Python 3.10
Tämä on vanheneva versio. Build-prosesseissa voi ilmetä ongelmia nykyaikaisen paketoinnin vuoksi, kaikkia wheel-paketteja ei enää julkaista eri alustoille ja CI-ympäristöissä näkyy poistuvia ominaisuuksia. Myös pilvipalveluntarjoajat alkavat luopua tästä runtime-versiosta palvelittomissa ratkaisuissa.
Vaikutukset liiketoimintaan: pidemmät julkaisusyklit ja useampia poikkeustilanteita prosessiketjuissa.

  1. Julkaistu 4. lokakuuta 2021, 
  2. Aktiivinen tuki päättyi 5. huhtikuuta 2023. 
  3. Tietoturvatuki päättyy 31.10.2026.

Python 3.9 ja vanhemmat versiot
Suuri riski ja kalliit ylläpitokustannukset. Monien kirjastojen tuki on jo päättynyt. Turvallisuusohjeet, TLS-oletusasetukset ja käyttöjärjestelmäkuvat jäävät jälkeen.
Miksi tällä on merkitystä: insinöörit käyttävät huomattavasti aikaa kiertoratkaisujen kehittämiseen tuotekehityksen sijaan. Tämän lisäksi auditoinnit kiristyvät ja rekrytointipooli kutistuu.

  1. Julkaistu 5. lokakuuta 2020, 
  2. Aktiivinen tuki päättyi 17. toukokuuta 2022, 
  3. Tietoturvatuki päättyy 31.10.2025. 
  4. Vanhemmat 3.x-versiot, kuten 3.8, 3.7 ja 3.6, on poistettu jo kokonaan käytöstä.

Python 2.7

Tuotteen elinkaaren loppu. Jotkut toimittajat ovat jatkaneet yksityisten korjaustiedostojen jakelua, mutta ekosysteemi on kehittynyt jo eteenpäin.
Miksi tällä on merkitystä: suuret tietoturva- ja vaatimustenmukaisuusriskit, lähes olematon rekrytointipooli, kallis räätälöity tuki.

  1. Julkaistu 3. heinäkuuta 2010
  2. Tuen virallinen päättyminen 1.1.2020.

Ekosysteemin rajoitteet, jotka ohjaavat versiopäivityksiä

  1. Verkkokehykset: Nykyaikaiset Django- ja FastAPI-sovellukset suosivat uusimpia 3.x-versioita ja luopuvat vanhemmista Python-versioista nopeasti.
  2. Datakirjastot: NumPy, pandas ja Scientific Wheels perustuvat nykyiseen 3.x-versioon, mikä vaikuttaa käännösaikoihin ja siirrettävyyteen.
  3. Pilvipohjaiset suoritusympäristöt: Palvelimettomat ratkaisut ja konttikuva-arkistot ovat siirtymässä pois vanhemmista 3.x-versioista. Tämä lisää tietoturvariskiä, mikäli jatkatte niiden käyttöä.

Mitä johdon tulisi odottaa päivityksen lopputuloksilta

  1. Pienemmät riskit tietoturvatilanne paranee ja hätäkorjausten määrä vähenee
  2. Nopeampi toimitus: vähemmän pakkausyllätyksiä ja sujuvampi CI/CD
  3. Parempi rekrytointimenestys: moderni Python houkuttelee pätevämpiä hakijoita
  4. Ennustettavat kulut: neljännesvuosittainen tarkastus on parempi vaihtoehto kuin viime hetken pelastustoimet

Voiko Python-versiomme hyödyntää nykyaikaisia tekoälypalveluita?

Kun tiimit sanovat, että ”emme voi ottaa tekoälyä käyttöön”, kyse on usein suoritusympäristön ja SDK:n yhteensopimattomuudesta (ja toisinaan TLS:n, HTTP:n tai pakkaamisen aiheuttamista ongelmista), ei tuotteen rajoituksista. Tässä on käytännönläheinen, versioittain esitetty katsaus OpenAI:hin/Azure OpenAI:hin, Amazon Bedrockiin/SageMakeriin (boto3) ja Google Vertex AI:hin sekä siihen, mitä palvelimettomat suoritusympäristöt tällä hetkellä sallivat.

Mitä tärkeimmät Python-sovelluskehityspaketit edellyttävät (tiivistettynä)

  1. OpenAI (virallinen openai-paketti) – Vaatii Python 3.8 tai uudemman. 3.8:aa vanhemmat versiot estävät nykyisten julkaisujen toiminnan. PyPI+1
  2. Azure OpenAI (Azure AI Foundry -docsien kautta) – nykyisissä asiakasohjeissa oletetaan, että käytössä on moderni 3.x-versio; siirtymisohjeissa käsitellään OpenAI 1.x -asiakasohjelmaa (joka on versio 3.8 tai uudempi). Microsoft Learn
  3. AWS SDK for Python (boto3) – tukee aktiivisesti uusinta 3.x-versiota. Python 3.8:n tuki päättyi 22.4.2025; Bedrockia käytetään tavallisten boto3-asiakasohjelmien kautta. Vanhemmille Python-versioille ei enää tarjota tukea eikä tietoturvakorjauksia. PyPI+2boto3.amazonaws.com+2
  4. Google Vertex AI (google-cloud-aiplatform) – virallinen SDK; ohjeissa oletetaan, että käytössä on Python 3.x -versio, ja suositellaan pysymään tuetuissa LTS-versioissa. Google Cloud -ohjeet+1

Pilvi- ja palvelimettomat suoritusympäristöt, jotka edistävät tekoälyn käyttöönottoa

Vaikka SDK:t asennettaisiin paikallisesti, hallitut ajoympäristöt rajoittavat kuitenkin sitä, mitä voitte ottaa käyttöönne:

  1. AWS Lambda – ottaa uudet Python-versiot nopeasti käyttöön; julkisissa ohjeissa mainitaan tavoitejulkaisukuukaudet ja vanhentuvat versiot. Esimerkki: Python 3.14 on tarkoitus ottaa käyttöön marraskuussa 2025, ja kolmansien osapuolten tietojen mukaan Python 3.9 poistuu käytöstä Lambda-palvelussa 15.12.2025 mennessä. Jos koodinne on sidottu versioon 3.9 tai vanhempaan, suunnittelkaa siirtymä, jotta voitte jatkaa AI-sovellusliittymien turvallista käyttöä. AWS-ohjeet+1
  2. Azure Functions – näyttää yleisen saatavuuden (GA) tukiajat (esim. Python 3.12 GA lokakuuhun 2028 asti; 3.11 GA lokakuuhun 2027 asti; 3.10 GA lokakuuhun 2026 asti; 3.9 GA lokakuuhun 2025 asti). Jos versionne on näiden rajojen sisällä tai vanhempi, on se päivitettävä, jotta voitte jatkaa tekoälyominaisuuksien käyttöönottoa. Microsoft Learn
  3. Google Cloud Functions / Cloud Run -toiminnotPython 3.13 on ollut yleisessä käytössä Cloud Run -toiminnoissa 5. toukokuuta 2025 lähtien; vanhemmat versiot poistuvat käytöstä asteittain. Näiden ajoympäristöjen käyttöönotto helpottaa suoratoisto- ja chat-taustapalveluiden käyttöä. Google Cloud+1

Mitä tämä tarkoittaa teidän Python-ajoympäristössänne?

Python 3.13 (nykyinen versio)Vihreä.
Tämä on paras lähtökohta uusille AI-ominaisuuksille. Se tarjoaa suorimman tie moderniin TLS-tukeen, HTTP/2- ja streaming-ratkaisuihin sekä ajantasaisiin wheel-paketteihin; pilvipohjaiset ajoympäristöt ovat ottamassa sitä käyttöön tai se on jo yleisessä käytössä. Täältä löydätte ajantasaisimmat esimerkit ja vähiten backportteja. 

Python 3.12Vihreä.
Täysi tuki tärkeimmiltä tekoäly-SDK:ilta ja pilvipohjaisilta palvelimettomilta ratkaisuilta (yleisesti saatavilla Azure Functionsissa; yleisesti saatavilla GCP:ssä vuodesta 2023 lähtien Cloud Functions v2:ssa). Turvallinen väliaikaisratkaisu, kun valmistaudutte versioon 3.13. Microsoft Learn+1

Python 3.11 / 3.10Kellertävä
SDK:t saattavat yhä asentua, mutta kitka kasvaa: wheel-paketit katoavat nopeammin, CI-imaget vanhenevat ja pilvifunktiot ovat poistamassa näitä versioita käytöstä julkaistun aikataulun mukaisesti. Varautukaa lisääntyvään riippuvuuksien lukitsemiseen ja hitaampiin tietoturvapäivityksiin. Suunnitelkaa siirtymä versioihin 3.12 tai 3.13

Python 3.9 ja vanhemmat versiotPunainen.
Monien tekoäly- ja pilvipalvelukirjastojen tuki on jo päättynyt; boto3 lopetti 3.8-tuen, ja hallinnoidut ajoympäristöt ovat poistamassa 3.9- ja 3.8-versiot. Joudutte siis käyttämään aikaa kiertoratkaisuihin ominaisuuksien sijaan. Myöskin auditoinnit vaikeutuvat. Suhtautukaa alustan päivitykseen tekoälyn käyttöönoton edellytyksenä. PyPI+1

Python 2.7Ei tule kysymykseenkään.
Nykyaikaiset tekoäly-SDK:t eivät tue tätä; turvallisuus- ja vaatimustenmukaisuusriskit ovat valtavat. Siirtykää ensin uuteen versioon ja lisätkää tekoäly vasta sen jälkeen. 

Nopea tarkistuslista Python-palveluiden ”AI-valmiudesta”

  1. Kesto: Tavoitteena 3.12–3.13, jotta voidaan pysyä SDK:n ja palvelimettoman tuen aikataulujen puitteissa. 
  2. HTTP/suoratoisto: Tarkistakaa SSE-/WebSocket- reitit päästä päähän (tasapainottaja, sisäänmenoliitäntä, välityspalvelimet).
  3. Turvallisuus: Ajantasaiset TLS -salausalgoritmit ja CA-varmenteet kuvissa.
  4. Sovelluskehityspaketit: Käyttäkää nykyistä OpenAI-versiota (3.8 tai uudempi), Azure OpenAI:ta, boto3:a Bedrockin/SageMakerin kanssa sekä google-cloud-aiplatformiaVertex AI:n kanssa. Google Cloud -ohjeet+3PyPI+3Microsoft Learn+3
  5. Seurattavuus: token-, kustannus- ja viivelatenssimittarit sekä circuit breaker -mekanismit; uudelleenyritykset viiveellä (backoff) palveluntarjoajan rajoitusten varalta.
  6. Suojatoimenpiteet: Älkää ottako yhteyttä tekoälypalveluntarjoajiin suoraan selaimesta, vaan toteuta käytäntö- ja nopeusrajoitukset omassa API-kerroksessasi.

Johdon nyrkkisääntö

Jos käytätte Python 3.12:ta tai 3.13:a, olette valmiina nykyaikaiseen tekoälyyn (OpenAI/Azure, Bedrock/SageMaker, Vertex) suoratoistotoimintoineen ja ajantasaisine oletusasetuksineen. Jos puolestaan käytätte versiota 3.10 tai 3.11, voitte jatkaa, mutta suunnittelkaa kuitenkin päivitys. Jos taas käytätte versiota 3.9 tai vanhempaa, päivittäkää ensin, sillä kiertotavan kustannukset ylittävät rauhallisen siirtymisen nykyiseen tukeen.

UKK päätöksentekijöille

Voimmeko ohittaa versioita?
Usein kyllä, jos kehysrakenteet ja kirjastot tukevat kyseistä versiota. Pyytäkää lyhyttä yhteensopivuustarkistusta ja pilottitestiä.
Miksi pakkausmuutokset aiheuttavat ongelmia?
Rakennusjärjestelmät, wheel-tiedostot ja käyttöjärjestelmäkuvat kehittyvät nopeasti. Jos jäätte jälkeen, rakennukset muuttuvat epävakaisiksi ja hitaiksi.
Miten vältämme käyttökatkokset?
Hoitakaa julkaisu vaiheittain, ohjatkaa osa liikenteestä uuteen ympäristöön ja siirtäkää koko liikenne vasta sitten, kun palvelun tila on vakaa.

Mitä seuraavaksi kannattaisi tehdä?

Pyytäkää yhden sivun pituinen luettelo, jossa mainitaan Python-versionne, tärkeimmät kehysrakenteet, tietokirjastot ja suoritusympäristöt. Hyväksykää lyhyt yhteensopivuustesti ja suunnittelkaa sitten vaiheittainen käyttöönotto. Tehkää tästä neljännesvuosittainen käytäntö.

Ottakaa meihin yhteyttä

Suunnittelemme ja toteutamme Python-päivitykset rauhallisin ja selkein vaihein. Jos kaipaatte ulkopuolista näkemystä tai tukea toteutukseen, olkaa meihin yhteydessä.

Tiimin täydentäminen

Sopii parhaiten silloin, kun tarvitset täysin tehtäviinsä keskittyviä kehittäjiä sekä lisäresursseja pidempiaikaiseen kehitykseen (6+ kuukautta).

Lue lisää

Ohjelmistoprojektit

Sinulla on jo liikeidea, jonka avulla voit menestyä, mutta tarvitset asiantuntevia ohjelmistosuunnittelijoita sopivan ratkaisun rakentamiseen.

Lue lisää

Ohjelmistokehityspalvelut

Tutustu kirjoittajiin

Paavo Pauklin
Johtokunnan jäsen
+372 6 555 022
Joseph Carson
Eettinen hakkeri, kyberturvallisuusneuvoja
+372 6 555 022

Ilmoittaudu 30 minuutin ilmaiseen konsultaatioon

Varaa ilmainen konsultaatio