Programovanie

Ako zabaliť aplikácie v Pythone s Aktovkou BeeWare

Python v niekoľkých oblastiach zaostáva. Napríklad Python nie je najrýchlejší jazyk v okolí, ale knižnice tretích strán, ako je NumPy, vám to umožnia obísť. Kde je však Python najviac nedostatočný, je obal. To znamená, že Pythonu chýba konzistentný vnútorný mechanizmus na generovanie samostatného binárneho súboru z aplikácie. Choď a Rust to urob. Prečo nemôže Python?

Väčšinou to príde na to, že Python nemal kultúru takýchto prípadov použitia až donedávna vo svojej histórii. A tak sa len relatívne nedávno začali objavovať moduly tretích strán, ktoré umožňujú zabalenie aplikácií Pythonu ako samostatných binárnych súborov. PyInstaller - o ktorom som hovoril predtým - je jednou z takýchto aplikácií. V tomto článku sa pozrieme na ešte elegantnejšiu a výkonnejšiu utilitu na balenie aplikácií v Pythone, Aktovku BeeWare.

[Tiež na: Python virtualenv a venv robí a nerobí]

Existujú však dve výhrady, ktoré stojí za to poukázať na Aktovku. Po prvé, Aktovka nerobí obaly pre rôzne platformy; musíte stavať na platforme, pre ktorú nasadzujete. Po druhé, Aktovka funguje najlepšie s aplikáciami, ktoré využívajú nejaký súbor nástrojov GUI. Ďalej sa podrobne zaoberáme týmito problémami.

Čo je aktovka BeeWare?

Aktovka je súčasťou všeobecnej sady nástrojov spoločnosti BeeWare na vytváranie aplikácií, pričom jednotlivé kúsky sa navzájom dopĺňajú. Napríklad Kivy od BeeWare vám umožňuje vytvárať aplikácie pre rôzne platformy GUI v Pythone, ktoré bežia nielen na všetkých hlavných platformách OS, ale aj na webe. Tu sa však zameriame na Aktovku, ktorú je možné použiť s ostatnými nástrojmi alebo bez nich.

Aktovka balíčky aplikácií pre všetky operačné systémy, ktoré podporuje, prostredníctvom spoločného formátu pre aplikácie na tejto platforme:

  • Microsoft Windows (inštalátor MSI)
  • macOS (.app formát súboru)
  • Linux (AppImage)
  • iOS (projekt Xcode)
  • Android (projekt Gradle)

Na nasadenie v systéme iOS alebo Android budete potrebovať vývojové kity pre tieto platformy.

Jedna vec je Aktovkanie podpora je nasadenie naprieč platformami. Napríklad, ak ste používateľom systému Windows, nemôžete zostaviť aplikáciu pre macOS; na to budete potrebovať macOS. Podobne sú obmedzené aj ďalšie balíčky aplikácií pre Python, takže toto obmedzenie nie je v žiadnom prípade výhradné pre Aktovku.

Aktovka tiež nie je „kompilátor“ - nepremieňa programy v Pythone na ich natívne ekvivalenty strojového kódu. Vaše aplikácie nebudú bežať rýchlejšie, keď budú nasadené ako aktovky, ako sú bežné.

Nastavenie aktovky projektu

Aktovka vyžaduje, aby ste nastavili vyhradený adresár projektu s vlastným virtuálnym prostredím. Ak ešte nepoznáte „venvs“, ako sa virtuálne prostredia Pythonu nazývajú, stojí za to ich urýchliť, pretože okolo nich sa točí najmodernejší vývoj Pythonu.

Potom, čo ste nastavili venv apip inštalovať kufrík do toho použijete vlastné nástroje príkazového riadku Aktovky na nastavenie, správu a doručenie projektov zabalených v Aktovke. Podobá sa to na fungovanie nástrojov, ako je Poetry: Väčšina vašich interakcií na vysokej úrovni s projektom prebieha prostredníctvom tohto nástroja, takže nemusíte manuálne vytvárať súbory ani upravovať konfigurácie.

Ak chcete zahájiť nový projekt Aktovky, otvorte CLI v adresári projektu, aktivujte virtuálne prostredie (za predpokladu, že na jeho automatické nepoužívanie nepoužívate CLI IDE) a zadajteaktovka nová. Týmto sa vytvorí lešenie v adresári projektu pre projekt Aktovky.

Spočiatku si budete musieť odpovedať na niektoré otázky týkajúce sa projektu a pre väčšinu z nich stačí stlačiťZadajte prijať predvolené nastavenie. Ale jedna z otázok, ktoré vám budú položené - v skutočnosti posledná - je veľmi dôležitá: výber rámca GUI, ktorý sa má použiť.

Jednou z ďalších ponúk spoločnosti BeeWare je sada nástrojov používateľského rozhrania s názvom Toga na vytváranie grafických používateľských rozhraní v programoch Python pomocou komponentov používateľského rozhrania natívnych pre platformu. Ak sa chcete naučiť učiť Togu a zároveň pracovať s Aktovkou, nič vám nebráni. Alebo môžete zvoliť „Žiadny“ a vytvoriť „bezhlavú“ aplikáciu, ktorá sa spustí z príkazového riadku, alebo môžete použiť UI sadu nástrojov alebo okenný systém, ako sú Pyglet alebo PyQT.

Upozorňujeme, že ak nenainštalujete žiadnu sadu nástrojov používateľského rozhrania, aplikácia nebude mať vôbec žiadnu interaktivitu s konzolou - tj. Neotvorí okno konzoly a na konzolu nič nevytlačí. Je to užitočné, ak implementujete program, ktorý nevyžaduje interakciu s konzolou - napríklad ak beží ako miestny webový server a na interakciu používa webový prehliadač. Zatiaľ však neexistuje možnosť umožniť spustenie programov Aktovky bez nainštalovaného balíka používateľského rozhrania pomocou konzoly.

Štruktúra aktovky projektu

Čerstvo spustený adresár aplikácie Aktovka obsahuje niekoľko predinštalovaných súborov:

  • Najvyššia úroveň adresára aplikácií obsahuje licenciu projektu,pyproject.toml súbor, vzorový súbor README vo formáte ReStructured Text a a.gitignore súbor, ktorý je vopred prispôsobený bežným adresárom a ktoré je potrebné vynechať z ľubovoľného úložiska Git vytvoreného pre projekt.
  • Thesrc adresár obsahuje zdrojový kód vašej aplikácie s dvoma podadresármi: jedným, ktorý obsahuje aplikáciu (má rovnaký názov ako adresár vášho projektu) a druhým, ktorý obsahuje metaúdaje aplikácie.
  • Adresár aplikácie obsahuje azdrojov adresár, ktorý slúži na ukladanie prostriedkov, ako sú ikony aplikácií.

Aktovky príkazov projektu

Thekufrík príkaz je spôsob, akým vykonávate väčšinu svojich interakcií s projektom Aktovky. Zakryli smeNový vyššie uvedený príkaz, ktorý sa používa na nastavenie projektu Aktovky v danom priečinku. Počas životného cyklu aplikácie Aktovka však budete zvyčajne musieť použiť mnoho ďalších príkazov a niektoré z nich môžu byť trochu neintuitívne.

Tu uvádzame najbežnejšie príkazy Aktovky, ktoré použijete:

  • dev: Keď ste v adresári aplikácie, tento príkaz spustí túto aplikáciu vrežim dev. Režim pre vývojárov umožňuje spustiť aplikáciu s úplným počtom nainštalovaných knižníc, ale bez nutnosti formálneho zabalenia kvôli dodaniu. Väčšinu času pri vývoji svojej aplikácie ju otestujete v režime pre vývojárov. Ak sa od posledného spustenia nejaké závislosti zmenilidev, Použi-d na ich aktualizáciu.
  • stavať: Vytvorí kópiu aplikácie vo forme potrebnej na zabalenie na účely distribúcie. To sa líši oddev v tom, že ak je nainštalované lešenie, môžete stavať pre rôzne platformy.
  • aktualizovať: Aktualizuje zostavenie aplikácie. Toto je rýchly spôsob, ako sa ubezpečiť, že zostavenie vašej aplikácie obsahuje najnovší kódstavať, ktorý regeneruje oveľa viac súborov. Prejdite okolo-d príznak na aktualizáciu závislostí a-r príznak na aktualizáciu zdrojov (to znamená na kopírovanie prostriedkov z dev verzie vašej aplikácie do verzie buildu).
  • bežať: Spustí zabudovanú verziu aplikácie. To v podstate simuluje spustenie zabalenej a nasadenej verzie aplikácie. Prejdite okolo-u príznak na aktualizáciu ľubovoľného kódu pred spustením.
  • balíček: Vytvorí balík inštalátora aplikácie zo zabudovanej verzie aplikácie. Konečným výsledkom je artefakt, ktorý môžete dať ostatným na inštaláciu vášho programu - napríklad .MSI v systéme Windows.

Tu uvádzame niektoré z menej bežne používaných príkazov Aktovky:

  • vytvoriť: Nesmie byť zamieňaný sNovývytvoriť vytvára lešenie pre inštalátor aplikácie - spôsob, ako zostaviť inštalátor aplikácie pre konkrétnu platformu. Keď nastavujete aplikáciu pomocouNový, prichádza s lešením pre platformu, na ktorej pracujete;vytvoriť v prípade potreby vám umožní pridať lešenie pre inú platformu.
  • upgrade: Vylepšuje komponenty použité na zabalenie aplikácie, napríklad rámec Wix.
  • zverejniť: Publikuje zabalenú aplikáciu na publikačný kanál, napríklad do obchodu s aplikáciami. (V čase písania tohto článku táto funkcia ešte nefunguje.)

Ak to zhrnieme, je to poradie, v akom by ste použili príkazy Aktovky v typickom životnom cykle aplikácie:

  • Nový na vytvorenie aplikácie
  • dev aplikáciu spustíte, keď na nej budete pracovať
  • stavať vytvoriť verziu aplikácie, ktorá bude zabalená na distribúciu
  • bežať na testovanie a spustenie zabalenej verzie aplikácie
  • aktualizovať aby bola zabalená verzia aplikácie aktuálna so zmenami kódu
  • balíček nasadiť zabalenú verziu aplikácie pomocou inštalačného programu

Vytvorenie aktovky aplikácie

Vytvorenie programu Python ako aplikácie Aktovka je rovnaké ako vytvorenie akejkoľvek inej aplikácie Python. Medzi hlavné problémy patrí štruktúra projektu. Vstupným bodom aplikácie je__main__.py v adresári aplikácie, ktorý sa načítaapp.py z rovnakého adresára a vykoná sahlavný(). Pri inicializácii projektu sa naplnia zástupné verzie niektorých súborov projektu, ktoré môžete podľa potreby zostaviť alebo nahradiť.

Ak transformujeteexistujúce projekt používať Aktovku, nezabudnite ju štruktúrovať tak, aby jej vstupný bod bol taký, aký Aktovka očakáva. Napríklad, ak ste kód neuložili do asrc adresára, budete musieť presunúť svoj kód dosrc a opraviť všetky nekompatibility v jeho cestách a adresárových štruktúrach.

Ďalšia vec, ktorú je potrebné mať na pamäti, je spôsob riešenia závislostí od tretích strán. Thepyproject.toml súbor v adresári projektu určuje, ktoré závislosti sa majú pridať do projektu. Ak je váš projekt pomenovanýmôj projektpotompyproject.toml bude obsahovať sekciu s názvom[tool.briefcase.app.myproject], svyžaduje riadok, ktorý uvádza každú požiadavku tak, ako by bola uvedená v arequirements.txt spis. Ak váš projekt potrebuje napríkladregulárny výraz ačierna, nastavíte tento riadok navyžaduje = ["regulárny výraz", "čierna"]. Potom by ste použilikufrík dev -d - aktualizovať závislosti pre vývojovú verziu projektu a -aktovka aktualita -d na aktualizáciu závislostí v zabalenej verzii.

Balenie a doručenie aktovky do aplikácií

Akonáhle bežítebalíček kufríka, v podadresári adresára projektu, ktorý zodpovedá platforme, pre ktorú ste vytvorili, sa zobrazí redistribuovateľný program. Napríklad pre Microsoft Windows bude adresároknáa redistribuovateľný bude.msi súbor s rovnakým názvom ako váš projekt. Pre Android a iOS budú výsledkami projekty pre Gradle a Xcode. Tieto bude treba zostaviť pomocou týchto nástrojov, aby sa dali nasadiť na tieto platformy.

Ako urobiť viac s Pythonom

  • Ako bežať Anakondu bok po boku s ostatnými Pytónmi
  • Ako používať dátové triedy Pythonu
  • Začnite s asynchronizáciou v Pythone
  • Ako používať asyncio v Pythone
  • 3 kroky na generálnu opravu asynchrónneho kódu Python
  • Ako používať program PyInstaller na vytvorenie spustiteľných súborov Pythonu
  • Výukový program pre Cython: Ako zrýchliť Python
  • Ako inteligentne nainštalovať Python
  • Ako spravovať projekty Pythonu pomocou Poetry
  • Ako spravovať projekty Pythonu pomocou Pipenv
  • Virtualenv a venv: Vysvetlenie virtuálnych prostredí Pythonu
  • Python virtualenv a venv robí a nerobí
  • Vysvetlenie vlákien a podprocesov v jazyku Python
  • Ako používať debugger Pythonu
  • Ako používať timeit na profilovanie kódu Pythonu
  • Ako používať cProfile na profilovanie kódu Pythonu
  • Ako previesť Python na JavaScript (a späť)