Programmēšana

Python 2 EOL: kā izdzīvot Python 2 beigās

Sākot ar 2020. gada 1. janvāri, tās veidotāji Python programmatūras fonds vairs neatbalsta Python programmēšanas valodas filiāli 2.x. Šis datums iezīmē gadiem ilgušās drāmas kulmināciju - pāreju no vecākas, mazāk spējīgas, plaši izmantotas Python versijas uz jaunāku, jaudīgāku versiju, kas joprojām seko tā priekšgājēja pieņemšanai.

Ir pēdējais laiks. Python 3 ar neskaitāmiem tehniskiem un galalietotāju uzlabojumiem, salīdzinot ar Python 2, nekad nav bijis labākā situācijā, lai neatgriezeniski pārvietotu Python 2. Lielākā daļa populāro pakotņu, kas tiek mitinātas PyPI krātuvē, kas ir pirmās pieturas veikals atkārtoti lietojamiem Python kodiem, atbalsta Python 3. Python 3 ir kļuvis par noklusējuma Python tulku daudziem Linux izplatījumiem. Un lielākā daļa katras jaunākās grāmatas, kodēšanas akadēmijas un tiešsaistes apmācības iesācējiem iesaka Python 3.

Tagad sliktās ziņas. Python 2, tāpat kā Windows 7 (vai Windows XP!), Būs ar mums vēl vairākus gadus. Daudzi no mums iekšējo ierobežojumu dēļ turpinās paļauties uz lietotnēm, kas rakstītas Python 2. Daži no mums pat turpinās izmantot Python 2 jaunām lietotnēm. Kas jums jādara, ja esat aizķēries ar Python 2 pasaulē, kas ātri kļūst par Python 3 pasauli? Apskatīsim iespējas.

Python 2 dzīves beigas: ko tas nozīmē

Pirmā un vissvarīgākā lieta, kas jāsaprot par Python 2 pāreju uz EOL (dzīves beigas): Python 2 lietojumprogrammas joprojām darbosies. Nedomājiet to par Tūkstošgades kļūdu, kur visas Python 2 lietojumprogrammas maģiski apstājas līdz 2020. gada 1. janvārim. Tās vairs nebūs oficiālu atbalstu par Python 2 no galvenās Python izstrādes komandas.

Lūk, ko praktiski nozīmē Python 2 EOL:

  • Oficiālie kļūdu labojumi un Python 2 drošības ielāpi tiks izbeigti. Izstrādes galvenā komanda nenovērsīs nesen atklātas problēmas Python 2 tulkā vai Python 2 standarta bibliotēkā. Tomēr komerciālie pārdevēji varēja patstāvīgi uzturēt Python 2, un citas trešās puses varēja diktēt Python 2 koda bāzi un turpināt darbu tur, kur pamattīkls pārtrauca. (Vairāk par to vēlāk.)
  • Trešās puses Python projekti atteiksies no Python 2. Bibliotēkas, kas ir atbalstījušas gan Python 2, gan Python 3, savus resursus sāks veltīt tikai Python 3. Daudzi no šiem projektiem ir brīvprātīgi, un tas ir daudz mazāk, lai atbalstītu tikai vienu valodas versiju. Katrs projekts pats izlems par Python 2 atbalstu, taču daudzi galvenie Python projekti apņemas pilnībā atteikties no Python 2 atbalsta līdz 2020. gadam.
  • Platformas atbalsts Python 2 samazināsies. Linux izplatīšanas un mākoņpakalpojumu nodrošinātāji var turpināt iekļaut Python 2 izpildlaiku. Bet sagaidiet, ka Python 2 atbalsts laika gaitā kļūs mazāk izturīgs. Gandrīz noteikti joprojām būs iespējams palaist Python 2 konteinerizētu versiju mākoņa platformā, taču nav garantijas, ka mākoņpakalpojumu sniedzēji turpinās uzturēt paši savus Python 2 konteinerus.

Ja jums ir iestrēdzis Python 2 lietojumprogrammas, kā jums vajadzētu rīkoties ar Python 2 atbalsta neesamību? Labākais, ko darīt ilgtermiņā, ir atrast stratēģiju, lai noņemtu visas atkarības no Python 2. Bet tas ir tikai pirmais no daudzajiem variantiem.

Pāreja prom no Python 2

Atkarībā no kodu bāzes lieluma un ārējām atkarībām Python 3 atstāšana Python 3 var būt vienkāršāka, nekā jūs gaidāt. Python oficiālajā dokumentācijā ir daži vienkārši soļi, kurus varat veikt, lai noteiktu, vai jūsu projekts ir “drošs nākotnē”, t.i., to var izmantot Python 3 ar nelielu korekciju vai bez tās. Viens no labākajiem pirmajiem soļiem, ko varat veikt, ir izmantotcaniusepython3 pakete, lai noskaidrotu, kuri komponenti vai atkarības bloķētu migrāciju, ja tādas ir.

Ja jums ir iestrēdzis Python 2, jo konkrēts lietojumprogrammas komponents darbojas tikai Python 2, sāciet, pārejot prom no šī komponenta. Pārbaudiet, vai pastāv alternatīva, kas ir saderīga ar Python 3, un pēc tam atjaunojiet lietojumprogrammu no šī punkta uz āru. Ideja ir meklēt mazākās vietas, kur atrodas atkarība no Python 2, un tās risināt.

Thevismazāk jūs varat darīt, ja jums kaut kādā veidā jāpaliek Python 2, vispirms pārejiet uz jaunāko Python 2 versiju - Python 2.7.16 šī raksta laikā - un izmantojiet to kā Python 3 izejas punktu. Tādā veidā jūs izmantosiet kļūdu labojumus, kas būs pieejami Python 2.7 pirms tā oficiālās dzīves beigām.

Izmantojiet alternatīvu Python 2 izpildlaiku

Ja Python 2 koda bāzes mainīšana nav efektīvs piedāvājums, vēl viena alternatīva ir izmantot citu Python 2 izpildlaiku, ko izstrādājusi trešā puse. Alternatīviem Python 2 izpildlaikiem var būt garāks atbalsta logs nekā pašam Python 2.

Tauthon

Tauthon ir Python 2.7.18 dakša “ar jaunu sintaksi, iebūvētiem elementiem un bibliotēkām, kas tiek portētas no Python 3.x”, teikts projekta README. Tauthon ietver arī valodas labojumus un ielāpus, kad vien uzturētāji tos var nodrošināt. Teorētiski Tauthon vajadzētu darboties kā Python 2.7 aizstājējs. Šī raksta jaunākais laidiens Tauthon 2.8.2 ietver funkciju anotācijas, tikai atslēgvārdu argumentus, asinhronizēt / gaidīt sintakse un citas funkcijas, kas agrāk bija pieejamas tikai Python 3.

PyPy

PyPy, tieši laikā paātrināts Python izpildlaiks, izmanto Python 2 kā galveno savas iekšējās infrastruktūras daļu un jau sen atbalsta Python 2 kā galveno versiju. Projekta dokumentācija apgalvo, ka “tā kā RPython [PyPy pamats] ir veidots virs Python 2 un tas ir ļoti maz ticams, ka tas mainīsies, PyPy Python 2 versija būs aptuveni“ uz visiem laikiem ”, ti, kamēr pati PyPy ir apkārt. ” PyPy var radīt saderības vai veiktspējas problēmas ar dažām Python pakotnēm, kuras paļaujas uz C paplašinājumiem, lai gan PyPy izstrādes komanda pastāvīgi strādā, lai šīs problēmas novērstu.

IronPython

IronPython, .Net izpildlaika Python ieviešanai, ir Python 2 versija, kas joprojām saņem aktīvu atbalstu. Tās pašreizējais izstrādātāju saraksts ir paziņojis, ka viņi, visticamāk, neatbalstīs Python 2 pēc 2020. gada, jo labāk koncentrēties uz IronPython3. Tomēr tas nenozīmē, ka kāds cits nevarētu patstāvīgi turpināt šādu atbalstu.

Cython

Vēl viena iespēja, lai arī ar ierobežotu atbalsta logu, ir arī Cython. Cython kompilē Python uz C ar izvēles rakstīšanu veiktspējas uzlabošanai un kopš tā pirmsākumiem ir atbalstījis Python 2. Ir iespējams izmantot Cython, lai pārveidotu Python 2 kodu C, lai turpinātu to izmantot kā “iesaldētu” bināru failu. To darot, jūs pat varētu palielināt veiktspēju atkarībā no lietojuma veida. (Programmas, kas galvenokārt saistītas ar I / O, daudz uzlabojumu neredzēs.)

Tomēr Cython plāno atteikties no Python 2 atbalsta līdz gada beigām. Tas nenozīmē, ka Python 2 programmas vairs netiks apkopotas Cython, tikai būs jāapkopo Cython kods, izmantojot Python 2 sintaksi izmantojot Python 3

Pērciet paplašinātu Python 2 atbalstu no pārdevēja

Viens ilgtermiņa risinājums ir iegūt atbalstu no Python risinājumu piegādātāja. ActiveSty, ActivePython izplatīšanas un Komodo IDE veidotājs, piedāvā komerciālu atbalstu klientiem, kuri vēlas palikt kopā ar Python 2 vai kuri vēlas migrēt uz Python 3, identificējot to Python kaudzes daļas, kuras jāpārraksta Python 3.

Daži pārdevēji nodrošina atbalstu Python 2 kā daļu no tā klātbūtnes citā atbalstītā produktā. Red Hat Enterprise Linux 6. un 7. versijā ir iekļauts Python 2, tāpēc visos atbalsta līgumos, kas iegādāti no Red Hat šīm OS versijām, tiks ietverts nepārtraukts atbalsts Python 2 visā produkta darbības laikā.

Ja izmantojat Python 2 kā mākoņpakalpojumu, pastāv iespēja, ka pakalpojums arī turpmāk savā veidā atbalstīs Python 2. Piemēram, AWS ir paziņojis, ka nodrošinās Python 2.7 izpildlaika drošības ielāpus līdz 2020. gada 31. decembrim, lai gan tas neattiecas uz nevienu trešo pušu Python 2.7 pakotni.

Trešā iespēja ir iegādāties atbalstu no konsultāciju firmas vai darbuzņēmēja. Viņu sniegtā atbalsta līmenis mainīsies atkarībā no jūsu vajadzībām un ambīcijām. Tas var sastāvēt no pārejas plāna izstrādes, lai pārietu no Python 2, un jebkuras atkarīgas programmatūras pārrakstīšana (iespējams, ir labākā ilgtermiņa stratēģija), vai manuāla Python 2 ielāpu apvienošana izpildlaika pielāgotā būvējumā (vērienīgs un sarežģīts) ).

Uzturiet Python 2 pats

Python ir atvērtā koda projekts. Nekas neliedz jums pats ieviest nepieciešamos labojumus. Ja labojums ir izmaiņas Python standarta bibliotēkā, tas parasti nav pārāk grūti, jo lielākā daļa Python standarta bibliotēkas pati ir rakstīta Python. Bet, ja jums jāveic izmaiņas C modulī, kuru Python izmanto standarta bibliotēkā, vai CPython tulks, tas būtu sarežģītāk. Lai to paveiktu, jums jāzina C un jāpārzina CPython iekšējie elementi.

Neko nedarīt

Ja tas nav salūzis, nenovēršiet to. Tā ir stratēģija, ko daudzi uzņēmumi izmantoja kopā ar Windows NT un Windows 2000, kad šīs operētājsistēmas bija beigušās. Python lietojumprogrammas, kas paredzētas tikai iekšējai lietošanai un kuras nav pakļautas publiskam internetam, teorētiski varētu darbināt bezgalīgi.

Virtuālās mašīnas un konteineru izvietošana nodrošina veidus, kā kontrolētā vidē uzturēt šāda veida lietojumus dzīvus. Konkrēto Python 2 izpildlaika izdevumu varat “iesaldēt” konteinera attēlā vai VM kopā ar tā standarta bibliotēku, lietotnei nepieciešamajiem moduļiem un pašu lietojumprogrammu.

Tas nozīmē, ka jebkura mantotā lietotne, pat ja tai nav ārējas iedarbības, regulāri jāpārvērtē. Jebkurā gadījumā labākā ilgtermiņa stratēģija Python 2 lietotājiem ir migrācija uz Python 3. Python 2, lai cik tas būtu bijis lieliski, ir kaut kas, no kā pārvietoties.

Lasiet vairāk par Python

  • Kas ir Python? Jaudīga, intuitīva programmēšana
  • Kas ir PyPy? Ātrāks Python bez sāpēm
  • Kas ir Cython? Python ar ātrumu C
  • Cython apmācība: kā paātrināt Python
  • Kā instalēt Python viedajā veidā
  • Labākās Python 3.8 jaunās funkcijas
  • Labāka Python projektu vadība ar dzeju
  • Virtualenv un venv: paskaidrotas virtuālās Python vides
  • Python virtualenv un venv do's un don'ts
  • Paskaidrots Python vītne un apakšprocesi
  • Kā izmantot Python atkļūdotāju
  • Kā izmantot Timeit, lai profilētu Python kodu
  • Kā izmantot cProfile Python koda profilēšanai
  • Sāciet darbu ar asinhronizāciju Python
  • Kā lietot asyncio Python
  • Kā konvertēt Python uz JavaScript (un atkal atpakaļ)
  • Python 2 EOL: kā izdzīvot Python 2 beigās
  • 12 pitoni visām programmēšanas vajadzībām
  • 24 Python bibliotēkas katram Python izstrādātājam
  • 7 saldie Python IDE, kurus jūs varētu palaist garām
  • 3 galvenie Python trūkumi un to risinājumi
  • Salīdzināti 13 Python tīmekļa ietvari
  • 4 Python testa ietvari, lai iznīcinātu jūsu kļūdas
  • 6 lieliskas jaunas Python funkcijas, kuras nevēlaties palaist garām
  • 5 Python izplatījumi mašīnmācīšanās apgūšanai
  • 8 lieliskas Python bibliotēkas dabiskās valodas apstrādei
$config[zx-auto] not found$config[zx-overlay] not found