Programmēšana

12 pitoni visām programmēšanas vajadzībām

Izvēloties programmatūras izstrādei Python, jūs izvēlaties lielu valodas ekosistēmu ar daudzām pakotnēm, kas aptver visu veidu programmēšanas vajadzības. Bet papildus bibliotēkām visam, sākot no GUI izstrādes līdz mašīnmācībai, varat izvēlēties arī no vairākiem Python izpildlaikiem - un daži no šiem izpildlaikiem var būt labāk piemēroti jūsu rīcībā esošajam lietošanas gadījumam nekā citi.

Šeit ir īss ceļvedis par Python izplatījumiem, sākot no standarta ieviešanas (CPython) līdz ātrumam optimizētām versijām (PyPy), īpaša lietojuma gadījumiem (Anaconda, ActivePython), dažādu valodu izpildlaikiem (Jython, IronPython) un pat griešanai- malu eksperimenti (PyCopy, MesaPy).

CPython

CPython ir standarta versijas Python ieviešana, standarta versija, kuru meklē visi citi Python iemiesojumi. CPython ir rakstīts C, kā norāda nosaukums, un to ražo tā pati cilvēku galvenā grupa, kas ir atbildīga par visiem augstākā līmeņa lēmumiem par Python valodu.

CPython lietošanas gadījumi

Tā kā CPython ir Python atsauces ieviešana, tā optimizācijas ziņā ir viskonservatīvākā. Tas ir pēc konstrukcijas. Python uzturētāji vēlas, lai CPython būtu visplašāk pieejamā un standartizētā Python ieviešana.

CPython ir jūsu labākā izvēle, ja savietojamībai un atbilstībai Python standartiem ir lielāka nozīme nekā neapstrādātai veiktspējai un citām problēmām. CPython ir noderīgs arī ekspertam, kurš vēlas sadarboties ar Python tā būtiskākajā iemiesojumā un kurš ir gatavs atteikties no noteiktām ērtībām.

Piemēram, izmantojot CPython, jums ir jāpieliek nedaudz vairāk, lai iestatītu virtuālās vides. Citi rajoni (īpaši Anaconda) nodrošina lielāku automatizāciju ap darbvietas iestatīšanu.

CPython ierobežojumi

CPython nav veiktspējas optimizācijas, kas atrastas citos Python izdevumos. Veiktspējas labad nav vietējā JIT (tieši laikā) kompilatora, paātrinātu matemātikas bibliotēku un trešo pušu papildinājumu. Tās ir visas lietas, kuras varat pievienot pats, taču tās nav komplektā. Arī tas viss ir paredzēts pēc konstrukcijas, lai nodrošinātu maksimālu savietojamību un ļautu CPython kalpot kā atsauces ieviešanu, taču tas nozīmē, ka visas veiktspējas optimizācijas ir izstrādātāja ziņā.

Turklāt CPython nodrošina tikai pamata rīku komplektu darbam ar Python. Piemēram, pakotņu pakotņu pārvaldnieks iegūst un instalē pakotnes no Python vietējās PyPI pakotņu krātuves. Pip pat instalēs iepriekš sastādītus bināros failus (izmantojot riteņu izplatīšanas formātu), ja tos nodrošina izstrādātājs, taču tas neinstalēs pakotņu atkarības ārā no PyPI.

Saistītais video: kā Python atvieglo programmēšanu

Ideāli piemērots IT, Python vienkāršo daudzu veidu darbu, sākot no sistēmas automatizācijas līdz darbam tādās modernās jomās kā mašīnmācīšanās.

Anakonda Python

Anaconda, ko ražo Anaconda, Inc. (agrāk Continuum Analytics), ir paredzēta Python izstrādātājiem, kuriem nepieciešama izplatīšana, ko atbalsta komerciāls nodrošinātājs un ar atbalsta plāniem uzņēmumiem. Galvenie Anaconda Python lietošanas gadījumi ir matemātika, statistika, inženierzinātnes, datu analīze, mašīnmācīšanās un saistītās lietojumprogrammas.

Anaconda Python lietošanas gadījumi

Anaconda apvieno daudzas no visbiežāk izmantotajām bibliotēkām, kas tiek izmantotas komerciālos un zinātniskos Python darbos, - SciPy, NumPy, Numba un tā tālāk, un padara daudzus citus pieejamus, izmantojot pielāgotu pakotņu pārvaldības sistēmu.

Anaconda izceļas no citiem izplatījumiem ar to, kā tā integrē visus šos gabalus. Pēc instalēšanas Anaconda nodrošina darbvirsmas lietotni - Anaconda Navigator -, kas padara pieejamu visus Anaconda vides aspektus, izmantojot ērtu GUI. Komponentu atrašana, atjaunināšana un sadarbība ar tiem ir daudz vienkāršāka, izmantojot Anaconda nekā ar CPython.

Vēl viens labums ir veids, kā Anaconda apstrādā komponentus ārpus Python ekosistēmas, ja tie nepieciešami konkrētai paketei. The conda pakotņu pārvaldnieks, kas izveidots tieši Anaconda, veic gan Python pakotņu, gan trešo pušu ārējās programmatūras prasību instalēšanu.

Anaconda Python ierobežojumi

Tā kā Anaconda ietver tik daudz noderīgu bibliotēku un var instalēt vēl vairāk, izmantojot tikai dažus taustiņsitienus, Anaconda instalācijas lielums var būt daudz lielāks nekā CPython. Pamata CPython instalācija darbojas apmēram 100 MB; Anakondas instalācijas var pieaugt līdz gigabaitiem. Tas var būt jautājums situācijās, kad jums ir resursu ierobežojumi.

Viens no veidiem, kā samazināt Anaconda nospiedumu, ir instalēt Miniconda, noņemto Anaconda versiju, kas ietver tikai absolūto minimālo gabalu daudzumu, kas nepieciešams, lai pieceltos un darbotos. Pēc tam jūs varat pievienot Miniconda pakas pēc saviem ieskatiem, pievēršot uzmanību tam, cik daudz vietas patērē katrs gabals.

ActivePython

Tāpat kā Anaconda, arī ActivePython izveido un uztur peļņas gūšanas uzņēmums - šajā gadījumā ActiveState, kas kopā ar daudzvalodu Komodo IDE tirgo vairākus valodu izpildlaikus.

ActivePython lietošanas gadījumi

ActivePython ir paredzēts uzņēmuma lietotājiem un datu zinātniekiem - cilvēkiem, kuri vēlas izmantot Python, bet nevēlas tērēt daudz pūļu, lai montētu un pārvaldītu Python instalāciju. ActivePython izmanto Python parasto pip pakotņu pārvaldnieku, bet piegādā arī dažus simtus kopīgu bibliotēku kā pārbaudītus pakotnes, kā arī dažas kopīgas bibliotēkas ar trešo personu atkarībām, piemēram, Intel Math Kernel bibliotēku.

ActivePython ierobežojumi

ActivePython pieejai pakotņu apstrādē ar ārējām atkarībām ir viens potenciāls trūkums. Ja vēlaties jaunināt uz jaunāku projekta versiju ar sarežģītām atkarībām (piemēram, TensorFlow), jums būs jāatjaunina arī jūsu ActivePython instalācija. Vide, kur attīstība mēdz būt saistīta ar konkrētu projekta versiju, tas nav tik jautājums. Bet vidēs, kur attīstībai ir tendence izsekot vismodernākajām versijām, tas var radīt problēmu.

PyPy

CPython tulka nomaiņa PyPy izmanto tieši laikā sagatavotu (JIT) kompilāciju, lai paātrinātu Python programmu izpildi. Atkarībā no veicamā uzdevuma snieguma pieaugums var būt dramatisks.

PyPy lietošanas gadījumi

Parasti sūdzības par Python un jo īpaši par CPython ir ātrums. Pēc noklusējuma Python darbojas daudzas reizes lēnāk nekā C, dažreiz simtiem reižu lēnāk. PyPy JIT apkopo Python kodu mašīnu valodai, nodrošinot vidēji 7,7x ātrumu virs CPython. Daži uzdevumi darbojas pat 50x ātrāk.

Labākā daļa ir tāda, ka izstrādātājs neprasa mazas pūles, lai tās gūtu. Mainiet CPython pret PyPy, un lielākoties esat pabeidzis.

PyPy ierobežojumi

PyPy vienmēr vislabāk ir darbojies ar “tīrajām” Python lietojumprogrammām. Python pakotnēm, kas saskaras ar C bibliotēkām, piemēram, NumPy, nav veicies tikpat labi, kā PyPy ir atdarinājis CPython vietējās binārās saskarnes. Tomēr laika gaitā PyPy izstrādātāji ir atlaiduši šo jautājumu un padarījuši PyPy daudz saderīgāku ar lielāko daļu Python pakotņu, kas ir atkarīgas no C paplašinājumiem. Īsāk sakot, atbalsts C paplašinājumiem joprojām ir ierobežots, bet daudz mazāks nekā agrāk.

Vēl viens iespējamais PyPy trūkums ir izpildlaika lielums. Galvenais CPython izpildlaiks operētājsistēmā Windows, izņemot standarta bibliotēku, ir aptuveni 4 MB, savukārt PyPy izpildlaiks ir aptuveni 32 MB. Ņemiet vērā arī to, ka PyPy jau sen ir uzsvēris Python 2.x filiāli, tāpēc, piemēram, PyPy for Python 3.x pašlaik ir pieejams operētājsistēmai Windows tikai 32 bitu beta testa versijā. (PyPy ir pieejams 64 bitu versijās Python 2.x un 3.x operētājsistēmām Linux un MacOS.)

Jython

JVM (Java virtuālā mašīna) kalpo kā izpildlaiks daudzām valodām, izņemot Java. Garajā sarakstā Jython projekta ietvaros ir Groovy, Scala, Clojure, Kotlin un, jā, Python.

Jython lietošanas gadījumi

Jython apkopo Python 2.x kodu JVM baitkodā un palaiž iegūto programmu JVM. Dažos gadījumos Jython kompilētā programma darbosies ātrāk nekā tā CPython kolēģis, bet ne vienmēr.

Lielākā priekšrocība, ko nodrošina Jython, ir tieša savietojamība ar pārējo Java ekosistēmu. Java tiek izmantota pat plašāk nekā Python. Python palaišana JVM ļauj Python izstrādātājiem izmantot milzīgu bibliotēku un ietvaru ekosistēmu, ko citādi viņi nevarētu izmantot. Ar to pašu Jython ļauj Java izstrādātājiem izmantot Python bibliotēkas.

Jython ierobežojumi

Lielākais Jython trūkums ir tas, ka tas atbalsta tikai Python 2.x filiāli. Atbalsts Python 3.x tiek izstrādāts, taču tas ir bijis kādu laiku. Pagaidām nekas nav izlaists.

Ņemiet vērā arī to, ka, lai gan Jython ievada Python JVM, tas nenodrošina Python uz Android. Tā kā patlaban nav neviena Jython porta uz Android, Jython nevar izmantot Android lietojumprogrammu izstrādei.

IronPython

Tāpat kā Jython ir Python ieviešana JVM, IronPython ir Python ieviešana .Net izpildlaikā vai CLR (Common Language Runtime). IronPython izmanto CLR DLR (Dynamic Language Runtime), lai ļautu Python programmām darboties ar tādu pašu dinamikas pakāpi kā CPython.

IronPython lietošanas gadījumi

Tāpat kā Jython, arī IronPython ir tilts. Liels izmantošanas gadījums ir sadarbspēja starp Python un .Net Visumu. Esošos .Net komplektus var ielādēt IronPython programmās, izmantojot Python vietējo importēšanas un objektu manipulācijas sintaksi. Ir arī iespējams apkopot IronPython kodu asamblejā un palaist to tādu, kāds tas ir, vai izsaukt to no citām valodām. Tomēr ņemiet vērā, ka asamblejā esošajai MSIL (Microsoft Intermediate Language) nevar tieši piekļūt no citām .Net valodām, jo ​​tā neatbilst kopējās valodas specifikācijai.

IronPython ierobežojumi

Tāpat kā Jython, arī IronPython pašlaik atbalsta tikai Python 2.x. Tomēr tiek strādāts pie IronPython 3.x ieviešanas izveides.

WinPython

Kā norāda nosaukums, WinPython ir Python izplatījums, kas izveidots īpaši Microsoft Windows lietotājiem. CPython agrākie Windows izdevumi nebija labi izstrādāti, un Windows lietotājiem bija grūti pilnībā izmantot Python ekosistēmas priekšrocības. CPython Windows izdevums laika gaitā ir uzlabojies, taču WinPython joprojām piedāvā daudzas lietas, kas nav atrodamas CPython.

WinPython lietošanas gadījumi

WinPython galvenā atrakcija ir tā, ka tas ir autonoms Python izdevums. Tas nav jāuzstāda mašīnā, kur tā darbojas; tas vienkārši jāizsaiņo direktorijā. Tas padara WinPython noderīgu gadījumos, kad programmatūru nevar instalēt noteiktā sistēmā, gadījumos, kad iepriekš konfigurēts Python izpildlaiks ir jāsadala kopā ar lietojumprogrammām, lai tajā darbotos, vai ja vairākiem Python izdevumiem ir jāskrien blakus. netraucējot viens otram.

WinPython apvieno arī virkni datu zinātnei orientētu pakotņu - NumPy, Pandas, SciPy, Matplotlib utt. -, lai tās varētu izmantot uzreiz, bez papildu instalēšanas darbībām. Iekļauts ir arī C / C ++ kompilators, jo daudzām Windows mašīnām viens nav iekļauts, un daudziem Python paplašinājumiem tas ir nepieciešams vai var to izmantot.

WinPython ierobežojumi

Viens WinPython ierobežojums ir tas, ka dažos lietošanas gadījumos pēc noklusējuma tas var ietvert pārāk daudz. Lai to novērstu, WinPython veidotāji nodrošina katra WinPython izdevuma “nulles” versiju, kurā ir tikai pēc iespējas mazāk produkta instalēšanas. Vairāk pakotņu var pievienot vēlāk, izmantojot pašu Python pip vai WinPython WPPM utilītu.

Python Portable

Python Portable ir CPython izpildlaiks autonomā paketē. Tas nāk no pieklājīgi no PortableDevApps līdzīgi patstāvīgu lietojumprogrammu kolekcijas.

Python Portable lietošanas gadījumi

Tāpat kā WinPython, arī Python Portable ietver virkni paku zinātniskai skaitļošanai - Matplotlib, Numba, SymPy, SciPy, Cython un citas. Tāpat kā WinPython, arī Python Portable darbojas bez oficiāla instalēšanas Windows resursdatorā; tas var dzīvot jebkurā direktorijā vai noņemamā diskā. Iekļauts arī Spyder IDE un Python pip pakotņu pārvaldnieks, lai vajadzības gadījumā jūs varētu pievienot, mainīt vai noņemt paketes.

Python Portable ierobežojumi

Atšķirībā no WinPython, Python Portable neietver kompilatoru C / C ++. Jums būs jānodrošina C kompilators, lai izmantotu kodu, kas rakstīts ar Cython (un tādējādi apkopots līdz C).

Eksperimentāli Python sadalījumi

Šie izplatījumi veic būtiskas izmaiņas Python - vai nu tāpēc, ka viņi izmanto Python kā sākumpunktu kaut kam pilnīgi jaunam, vai tāpēc, ka viņi veic stratēģiskas izmaiņas standarta Python. Kopumā šie pitoni vēl nav ieteicami ražošanas vajadzībām.

Ja jūs tuvākajā nākotnē dzīvojat ar Python 2.x koda bāzi, ieteicams apskatīt mūsu rakstu par eksperimentālajiem Python izplatījumiem, kas uztur Python 2.x dzīvu.

MicroPython

MicroPython nodrošina minimālu Python valodas apakškopu, kas var darboties ar ļoti zemas klases aparatūru, piemēram, mikrokontrolleriem. MicroPython ievieš Python 3.4 ar dažām atšķirībām. MicroPython koda ierakstīšana ir vienkārša, ja zināt Python, taču esošais kods var nedarboties tāds, kāds tas ir.

Pikopija

$config[zx-auto] not found$config[zx-overlay] not found