Programovanie

12 pytónov pre každú potrebu programovania

Keď si pre vývoj softvéru vyberiete Python, vyberiete si rozsiahly jazykový ekosystém s množstvom balíkov pokrývajúcich všetky programovacie potreby. Ale okrem knižníc pre všetko od vývoja grafického užívateľského rozhrania až po strojové učenie si môžete vybrať aj z množstva runtime Pythonu - a niektoré z týchto runtime môžu lepšie vyhovovať použitému prípadu použitia ako iné.

Tu je krátka prehliadka distribúcií Pythonu, od štandardnej implementácie (CPython) po verzie optimalizované pre rýchlosť (PyPy), pre špeciálne prípady použitia (Anaconda, ActivePython), pre rôzne jazykové runtime (Jython, IronPython) a dokonca aj pre rezanie- hranové experimentovanie (PyCopy, MesaPy).

CPython

CPython je referenčná implementácia Pythonu, štandardnej verzie, na ktorú sa pozerajú všetky ostatné inkarnácie Pythonu. CPython je napísaný v jazyku C, ako to naznačuje názov, a vyrába ho rovnaká základná skupina ľudí zodpovedná za všetky rozhodnutia na najvyššej úrovni o jazyku Python.

Prípady použitia CPython

Pretože CPython je referenčnou implementáciou Pythonu, je najkonzervatívnejší z hľadiska jeho optimalizácie. Toto je zámerné. Správcovia Pythonu chcú, aby bol CPython najširšie kompatibilnou a štandardizovanou implementáciou Pythonu, ktorá je k dispozícii.

CPython je vaša najlepšia voľba, keď na kompatibilite a zhode s normami Pythonu záleží viac ako na surovom výkone a iných obavách. CPython je tiež užitočný pre experta, ktorý chce pracovať s Pythonom v jeho najzákladnejšej inkarnácii a ktorý je ochotný vzdať sa určitých vymožeností.

Napríklad s CPython musíte urobiť trochu viac zdvíhania, aby ste nastavili virtuálne prostredia. Ďalšie distribúcie (najmä Anaconda) poskytujú väčšiu automatizáciu nastavenia pracovného priestoru.

Obmedzenia CPython

CPython nemá optimalizáciu výkonu, ktorá sa nachádza v iných vydaniach Pythonu. Neexistuje žiadny natívny kompilátor JIT (just-in-time), žiadne zrýchlené matematické knižnice a žiadne prídavky tretích strán kvôli výkonu. Všetko sú veci, ktoré môžete pridať sami, ale nie sú zoskupené. Toto všetko je opäť zámerné, aby sa zabezpečila maximálna kompatibilita a umožnilo CPythonu slúžiť ako referenčná implementácia, ale to znamená, že akékoľvek optimalizácie výkonu sú na vývojárovi.

Ďalej CPython poskytuje iba základnú sadu nástrojov na prácu s Pythonom. Správca balíkov pip napríklad získava a inštaluje balíčky z natívneho úložiska balíkov PyPI v Pythone. Pip dokonca nainštaluje predkompilované binárne súbory (cez formát distribúcie kolies), ak ich poskytuje vývojár, ale nenainštaluje žiadne závislosti, ktoré by balíčky mohli mať vonku PyPI.

Súvisiace video: Ako Python uľahčuje programovanie

Python, perfektný pre IT, zjednodušuje mnoho druhov práce, od automatizácie systému až po prácu v špičkových oblastiach, ako je strojové učenie.

Anakonda Python

Anaconda, produkovaná spoločnosťou Anaconda, Inc. (predtým Continuum Analytics), je určená pre vývojárov Pythonu, ktorí potrebujú distribúciu podloženú komerčným poskytovateľom a majú podporné plány pre podniky. Hlavnými prípadmi použitia pre Anaconda Python sú matematika, štatistika, inžinierstvo, analýza dát, strojové učenie a súvisiace aplikácie.

Prípady použitia Anaconda Python

Anaconda spája mnoho najbežnejších knižníc používaných v komerčných a vedeckých prácach v Pythone - SciPy, NumPy, Numba atď. - a oveľa viac z nich sprístupňuje prostredníctvom vlastného systému správy balíkov.

Anaconda vyčnieva z iných distribúcií v tom, ako integruje všetky tieto kúsky. Po nainštalovaní poskytuje Anaconda desktopovú aplikáciu - Anaconda Navigator - ktorá sprístupňuje všetky aspekty prostredia Anaconda prostredníctvom pohodlného grafického používateľského rozhrania. Hľadanie komponentov, ich aktualizácia a práca s nimi je pri Anaconde oveľa jednoduchšie po vybalení ako pri CPython.

Ďalším prínosom je spôsob, akým Anaconda zaobchádza s komponentmi mimo ekosystému Python, ak sú pre konkrétny balík potrebné. The byt správca balíkov, vytvorený špeciálne pre Anaconda, zvláda inštaláciu balíkov Pythonu aj externých softvérových požiadaviek tretích strán.

Obmedzenia anakondy Python

Pretože Anaconda obsahuje toľko užitočných knižníc a dokáže nainštalovať ešte viac len s niekoľkými stlačeniami klávesov, veľkosť inštalácie Anacondy môže byť oveľa väčšia ako CPython. Základná inštalácia CPython beží asi 100 MB; Inštalácie anakondy môžu narásť do veľkosti gigabajtov. To môže byť problém v situáciách, keď máte obmedzenia zdrojov.

Jedným zo spôsobov, ako znížiť stopu Anacondy, je inštalácia Miniconda, odizolovanej verzie Anacondy, ktorá obsahuje iba absolútne minimum kusov potrebných na uvedenie do prevádzky. Potom môžete do Minicondy pridať balíčky, ako uznáte za vhodné, s ohľadom na to, koľko miesta každý kus zaberie.

ActivePython

Rovnako ako Anaconda, aj ActivePython je vytváraný a udržiavaný neziskovou spoločnosťou - v tomto prípade ActiveState, ktorá spolu s viacjazyčným Komodo IDE predáva množstvo jazykových runtime.

Prípady použitia ActivePython

ActivePython je zameraný na podnikových používateľov a dátových vedcov - ľudí, ktorí chcú používať Python, ale nechcú vynaložiť veľa úsilia na zostavenie a správu inštalácie Pythonu. ActivePython používa Pythonovo bežné pip správca balíkov, ale tiež dodáva niekoľko stoviek bežných knižníc ako overené balíčky spolu s niektorými bežnými knižnicami so závislosťami od tretích strán, ako je napríklad Intel Math Kernel Library.

Obmedzenia ActivePython

Prístup ActivePython k manipulácii s balíkmi s externými závislosťami má jednu potenciálnu nevýhodu. Ak chcete inovovať na novšiu verziu projektu so zložitými závislosťami (napr. TensorFlow), budete musieť inovovať aj svoju inštaláciu ActivePython. V prostrediach, kde má vývoj tendenciu byť viazaný na konkrétnu verziu projektu, to nie je problém. Ale v prostrediach, kde má vývoj tendenciu sledovať špičkové verzie, by to mohlo predstavovať problém.

PyPy

Náhradná náhrada za tlmočníka CPython, PyPy používa kompiláciu just-in-time (JIT) na urýchlenie vykonávania programov Python. V závislosti od vykonávanej úlohy môžu byť prírastky výkonu dramatické.

Prípady použitia PyPy

Bežnou sťažnosťou na Python všeobecne a najmä CPython je rýchlosť. V predvolenom nastavení beží Python mnohokrát pomalšie ako C, niekedy stokrát pomalšie. PyPy JIT kompiluje kód Pythonu do jazyka stroja a poskytuje priemerne 7,7-násobné zrýchlenie oproti CPythonu. Niektoré úlohy bežia až 50-krát rýchlejšie.

Najlepšie na tom je, že vývojár na odomknutie týchto ziskov nevyžaduje žiadne alebo len malé úsilie. Vymeňte CPython za PyPy a z väčšej časti ste hotoví.

Obmedzenia PyPy

PyPy vždy fungoval najlepšie s „čistými“ aplikáciami Pythonu. Balíky Pythonu, ktoré sú prepojené s knižnicami C, ako je napríklad NumPy, sa zatiaľ príliš nevydarili kvôli spôsobu, akým PyPy emuloval natívne binárne rozhrania CPythonu. Vývojári PyPy sa však v priebehu času týmto problémom zbavili a spôsobili, že PyPy je oveľa kompatibilnejší s väčšinou balíkov Pythonu, ktoré závisia od rozšírení C. Stručne povedané, podpora rozšírení C je stále obmedzená, ale oveľa menšia, ako bývala.

Ďalším možným mínusom PyPy je veľkosť modulu runtime. Základné runtime CPython v systéme Windows, s výnimkou štandardnej knižnice, je okolo 4 MB, zatiaľ čo runtime PyPy je okolo 32 MB. Upozorňujeme tiež, že PyPy už dlho zdôrazňuje vetvu 2.x Pythonu, takže napríklad PyPy pre Python 3.x je momentálne k dispozícii pre Windows iba v 32-bitovej beta-testovacej verzii. (PyPy je k dispozícii v 64-bitových verziách pre Python 2.xa 3.x pre Linux a MacOS.)

Jython

JVM (Java Virtual Machine) slúži ako runtime pre mnoho jazykov okrem Javy. Dlhý zoznam obsahuje Groovy, Scala, Clojure, Kotlin a, samozrejme, Python, prostredníctvom projektu Jython.

Prípady použitia Jythonu

Jython kompiluje kód Python 2.x do bytecode JVM a výsledný program spustí na JVM. V niektorých prípadoch bude program kompilovaný v Jythone bežať rýchlejšie ako jeho náprotivok v CPython, ale nie vždy.

Najväčšou výhodou, ktorú Jython poskytuje, je priama interoperabilita so zvyškom ekosystému Java. Java sa používa ešte širšie ako Python. Spustenie Pythonu na JVM umožňuje vývojárom Pythonu preniknúť do obrovského ekosystému knižníc a rámcov, ktoré by inak neboli schopní použiť. Rovnako Jython umožňuje vývojárom Java používať knižnice Pythonu.

Obmedzenia jazyka Jython

Najväčšou nevýhodou pre Jython je, že podporuje iba vetvu 2.x Pythonu. Podpora pre Python 3.x je vo vývoji, ale už nejaký čas existuje. Doteraz nebolo nič zverejnené.

Upozorňujeme tiež, že zatiaľ čo Jython prináša Python na JVM, neprináša Python pre Android. Pretože v súčasnosti neexistuje žiadny port Jythonu pre Android, Jython sa nedá použiť na vývoj aplikácií pre Android.

IronPython

Rovnako ako Jython je implementácia Pythonu na JVM, IronPython je implementácia Pythonu na .Net runtime alebo CLR (Common Language Runtime). IronPython používa DLR (Dynamic Language Runtime) CLR, aby umožnil programom Python bežať s rovnakým stupňom dynamiky ako v CPythone.

Príklady použitia programu IronPython

Rovnako ako Jython, aj IronPython je most. Veľkým prípadom použitia je interoperabilita medzi Pythonom a vesmírom .Net. Existujúce zostavy .Net je možné načítať v programoch IronPython pomocou natívneho importu a syntaxe manipulácie s objektmi Pythonu. Je tiež možné zostaviť kód IronPython do zostavy a spustiť ho tak, ako je, alebo ho vyvolať z iných jazykov. Upozorňujeme však, že k MSIL (Microsoft Intermediate Language) v zostave nie je možné priamo získať prístup z iných jazykov .Net, pretože nie je v súlade so špecifikáciou spoločného jazyka.

Obmedzenia programu IronPython

Rovnako ako Jython, aj IronPython momentálne podporuje iba Python 2.x. Momentálne sa však pracuje na vytvorení implementácie IronPython 3.x.

WinPython

Ako už z názvu vyplýva, WinPython je distribúcia Pythonu vytvorená špeciálne pre používateľov systému Microsoft Windows. Predchádzajúce vydania CPython pre Windows neboli dobre navrhnuté a pre používateľov Windows bolo ťažké plne využiť ekosystém Python. Vydanie CPython pre Windows sa časom zlepšovalo, ale WinPython stále ponúka veľa vecí, ktoré sa v CPythone nenašli.

Prípady použitia WinPython

Hlavným lákadlom programu WinPython je, že ide o samostatné vydanie jazyka Python. Nemusí byť nainštalovaný na stroji, kde beží; treba to len rozbaliť do adresára. Vďaka tomu je program WinPython užitočný v prípadoch, keď v danom systéme nie je možné nainštalovať softvér, v situáciách, keď je potrebné distribuovať predkonfigurovaný runtime Python spolu s aplikáciami, ktoré sa na ňom majú spustiť, alebo v ktorých musí vedľa seba bežať viac vydaní Pythonu. bez toho, aby si navzájom prekážali.

WinPython tiež zhromažďuje množstvo balíkov zameraných na dátové vedy - NumPy, Pandas, SciPy, Matplotlib atď., Takže ich možno ihneď použiť bez ďalších inštalačných krokov. Zahrnutý je aj kompilátor C / C ++, pretože veľa počítačov so systémom Windows nemá jeden zahrnutý a mnoho rozšírení Pythonu to vyžaduje alebo môže využiť.

Obmedzenia WinPython

Jedným obmedzením programu WinPython je, že predvolene môže obsahovať príliš veľa pre niektoré prípady použitia. Aby to napravili, tvorcovia WinPython poskytujú „nulovú“ verziu každej edície WinPython, ktorá obsahuje iba minimálnu možnú inštaláciu produktu. Neskôr možno pridať ďalšie balíčky, buď s vlastným Pythonom pip nástroj alebo utilita WinPython WPPM.

Prenosný v Pythone

Python Portable je runtime CPython v samostatnom balíku. Vychádza s povolením zbierky podobne samostatných aplikácií PortableDevApps.

Prípady použitia Python Portable

Rovnako ako WinPython, aj Python Portable obsahuje množstvo balíkov pre vedecké výpočty - Matplotlib, Numba, SymPy, SciPy, Cython a ďalšie. Rovnako ako WinPython, aj Python Portable beží bez nutnosti formálnej inštalácie na hostiteľovi Windows; môže žiť v ľubovoľnom adresári alebo na vymeniteľnej jednotke. Zahrnutý je aj Spyder IDE a správca balíkov pipov v Pythone, takže môžete podľa potreby pridávať, meniť alebo odstraňovať balíčky.

Prenosné obmedzenia pre Python

Na rozdiel od WinPython, Python Portable neobsahuje kompilátor C / C ++. Budete musieť poskytnúť kompilátor C, aby ste mohli využiť kód napísaný v Cythone (a teda kompilovaný do C).

Experimentálne distribúcie v jazyku Python

Tieto distribúcie robia v Pythone významné zmeny - buď preto, že používajú Python ako východiskový bod pre niečo úplne nové, alebo preto, že robia strategické zmeny v štandardnom Pythone. Všeobecne sa tieto Pythony zatiaľ na produkčné použitie neodporúčajú.

Ak žijete v dohľadnej budúcnosti s kódovou základňou Python 2.x, možno by ste sa mali pozrieť na náš článok o experimentálnych distribúciách Pythonu, ktoré udržujú Python 2.x nažive.

MicroPython

MicroPython poskytuje minimálnu podmnožinu jazyka Python, ktorá môže bežať na extrémne nízkom hardvéri, ako sú mikrokontroléry. MicroPython implementuje Python 3.4 s niektorými rozdielmi. Je ľahké napísať kód MicroPython, ak poznáte Python, ale existujúci kód nemusí bežať tak, ako je.

Pyskopia

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