Sådan migrerer du til Python 3

Illustration: Bigstock
Nytårsdag gik solen ned over Python 2. Så det er bare med at komme i gang med flytteriet, hvis man ikke lige fik det gjort. Læs her, hvordan du gør.

Årsskiftet betød, at det det slut med ​​support for Python 2. Så der er panik efter lukketid, hvis applikationer ikke er blevet flyttet endnu.

I sin tid blev Python 2 brugt som et scripting-sprog. Det blev brugt til konfiguration og webapplikationer. Men så blev Pythons pakker til videnskabelig og numerisk brug meget populært.

Python 3 kom på gaden i 2008, men der har været en del træghed i tilegnelsen af den nye version, som på mange punkter bryder kompatibiliteten med den forrige udgave. Og indtil nu har der ikke nødvendigvis været gode grunde til at skifte.

»Virksomheder med applikationer, der kører en hvilken som helst version af Python 2, er nødt til at migrere – og jo før, desto bedre,« siger Bart Copeland, der er administrerende direktør i softwarevirksomheden ActiveState, til mediet Techrepublic.

Bart Copeland påpeger, at populære data- og AI-biblioteker som NumPy og Tensorflow er skiftet til Python 3 fra den 1. januar.

»Migrering til en ny version af Python er en betydelig opgave, så det bør ikke ske i hast. Migrering, som finder sted inden fristen udløber, vil hjælpe udviklerne med at give dem den tid, der er nødvendig for at gøre det ordentligt og tage højde for eventuelle uforudsete fejl i god tid.«

Men nu har klokken altså slået 12. Så det er altså bare med at komme i sving, hvis man ikke allerede er i gang.

Sådan migrerer du koden

Et sted at starte, eller måske en desperat nødløsning, kan være programmet 2to3, som automatisk oversætter kode fra den gamle til den nye udgave.

Derudover har organisationen bag sproget, Python Software Foundation, skabt en omfattende guide til, hvordan man flytter kode fra Python 2 til 3. Techrepublic har opsummeret disse råd.

Det er langt nemmere at migrere fra Python 2.7 end tidligere versioner. Hvis organisationen bruger Python 2.6, skal man benytte biblioteket Six. Det byder på hjælpefunktioner der kan udjævne forskellene mellem Python-versionerne.

Sørg for, at din setup.py-fil korrekt angiver, hvilke versioner af Python din kode understøtter, og at dine test har mindst 80 pct. kodedækning.

Lær forskellene mellem Python 2 og Python 3 ved at læse Pythons egen What’s New-dokumentation og den gratis Porting to Python 3-bog.

Brug bibliotekerne Futurize eller Modernize til at gøre din Python 2-kode Python 3-kompatibel, og sørg for at læse dokumentationen.

Vær opmærksom på, hvordan division med heltal er forskellig i de to versioner. I Python 2 giver 9/2 = 4, og i Python 3 giver samme regnestykke værdien 4.5. Hvis du har brugt __future__ import division i din kode og // operatoren til heltalsdivison, vil din kode allerede være Python 3-kompatibel.

Python 3 er ændret i forhold til, hvilke data der kan bruges med str-typen for klarere at skelne mellem tekst og binære data. For at sikre kompatibilitet skal en række skridt udføres, som gennemgået i portabilitets-dokumentationen. Et værktøj til statisk type-tjek, som Mypy, kan også hjælpe med at finde problemet.

Når man afvikler kode, der opfører sig forskelligt, baseret på hvilken version af Python, der kører, er det bedre at kontrollere, om en bestemt funktion, der understøttes i Python 3, er i stand til at køre, i stedet for at tjekke, om sys.version_info [0] er lig med 3.

Kontroller, hvilke softwareafhængigheder der spænder ben for Python 3 ved hjælp af værktøjerne leveret af projektet Caniusepython3.

Denne artikel har tidligere været bragt på DataTech.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (2)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Log ind eller Opret konto for at kommentere