Programiranje

Kako zapakirati aplikacije Python v aktovko BeeWare

Python na nekaterih področjih ne zadošča. Na primer, Python ni najhitrejši jezik, toda knjižnice drugih proizvajalcev, kot je NumPy, vam omogočajo, da se tega izognete. Kjer Pythonu najbolj primanjkuje, je embalaža. To pomeni, da Python nima doslednega notranjega mehanizma za generiranje samostojnega binarnega programa iz aplikacije. Pojdi in Rust naredi to. Zakaj Python ne more?

Večinoma gre za to, da Python še dokaj nedavno v svoji zgodovini ni imel kulture takšnih primerov. In tako so se šele relativno nedavno začeli prikazovati moduli drugih proizvajalcev, ki omogočajo, da se aplikacije Python pakirajo v samostojne binarne datoteke. PyInstaller - ki sem ga že obravnaval - je ena takih aplikacij. V tem članku si bomo ogledali še bolj eleganten in zmogljiv pripomoček za pakiranje aplikacij Python, BeeWare's Briefcase.

[Tudi o: Python virtualenv in venv naredi in ne]

Vendar je treba na aktovko opozoriti na dva opozorila. Prvič, v aktovki ni embalaže za več platform; morate graditi na platformi, za katero uvajate. Drugič, aktovka najbolje deluje z aplikacijami, ki uporabljajo nekakšen nabor orodij GUI. O teh vprašanjih bomo podrobneje razpravljali spodaj.

Kaj je aktovka BeeWare?

Aktovka je del splošne zbirke orodij podjetja BeeWare za ustvarjanje aplikacij, pri čemer se različni deli med seboj dopolnjujejo. Na primer, BeeWare-ov Kivy vam omogoča, da v Pythonu ustvarite večplastne GUI aplikacije, ki se izvajajo ne samo na vseh glavnih platformah OS, temveč tudi v spletu. Tu pa se bomo osredotočili na aktovko, ki jo lahko uporabljate z drugimi orodji ali brez njih.

Aplikacije za aktovke za vse operacijske sisteme, ki jih podpira, v skupni obliki za aplikacije na tej platformi:

  • Microsoft Windows (namestitveni program MSI)
  • macOS (.app format datoteke)
  • Linux (AppImage)
  • iOS (projekt Xcode)
  • Android (projekt Gradle)

Za namestitev v iOS ali Android potrebujete razvojne komplete za te platforme.

Ena stvar je v aktovkine podpora je uvedba med različnimi platformami. Če ste na primer uporabnik sistema Windows, ne morete zgraditi aplikacije macOS; za to boste potrebovali macOS. Tudi drugi paketi aplikacij za Python so podobno omejeni, zato ta omejitev nikakor ni izključna za aktovko.

Aktovka prav tako ni "prevajalnik" - programov Python ne spremeni v njihove naravne ekvivalente strojne kode. Ko se aplikacije uvedejo kot aktovke, se vaše aplikacije ne bodo izvajale hitreje kot običajno.

Nastavitev projekta aktovke

Aktovka zahteva, da nastavite poseben projektni imenik z lastnim virtualnim okoljem. Če še niste seznanjeni z "venvs", kot se imenujejo navidezna okolja Python, se jim splača pospešiti, saj se najsodobnejši razvoj Pythona močno vrti okoli njih.

Ko nastavite venv inpip namestite aktovko vanj boste uporabili lastno orodje ukazne vrstice Briefcase za nastavitev, upravljanje in dostavo projektov, ki jih vsebuje aktovka. To je podobno orodjem, kot je Poezija: večina vaših interakcij na visoki ravni s projektom poteka prek orodja, zato vam ni treba ročno ustvarjati datotek ali urejati konfiguracij.

Če želite začeti nov projekt Aktovke, odprite CLI v imeniku svojega projekta, aktivirajte navidezno okolje (ob predpostavki, da za to samodejno ne uporabljate IDE-jevega CLI-ja) in vnesiteaktovka nova. To ustvari oder v vašem imeniku projekta za projekt Aktovka.

Najprej boste morali odgovoriti na nekaj vprašanj o projektu, pri večini pa lahko samo pritisneteEnter da sprejmete privzeto. Toda eno od vprašanj, ki ga boste vprašali - pravzaprav zadnje - je zelo pomembno: izbira ogrodja grafičnega uporabniškega vmesnika za uporabo.

Ena od drugih ponudb podjetja BeeWare je nabor orodij uporabniškega vmesnika, imenovan Toga, za ustvarjanje GUI-jev v programih Python z uporabo komponent uporabniškega vmesnika, ki jih uporabljajo platforme. Če želite skočiti v učenje Toge in hkrati delati s Aktovko, vas nič ne ustavi. Lahko pa izberete »Brez« in ustvarite »brezglavo« aplikacijo, ki se zažene iz ukazne vrstice, ali pa uporabite tretji nabor orodij za uporabniški vmesnik ali okenski sistem, kot sta Pyglet ali PyQT.

Upoštevajte, da če ne namestite nobenega orodja za uporabniški vmesnik, aplikacija ne bo imela nobene interaktivnosti konzole - tj. Ne bo odprla okna konzole in na konzolo ne bo ničesar natisnila. To je koristno, če uvajate program, ki ne zahteva interakcije s konzolo - na primer, če deluje kot lokalni spletni strežnik in za interakcijo uporablja spletni brskalnik. Vendar še ni možnosti, da bi programi Briefcase brez nameščenega paketa uporabniškega vmesnika delovali s konzolo.

Struktura projekta aktovke

Sveže zagnani imenik aktovke ima vnaprej nameščenih več datotek:

  • Najvišja raven imenika aplikacij vsebuje licenco projekta,pyproject.toml datoteka, vzorčna datoteka README v obliki ReStructured Text in a.gitignore datoteka, ki je vnaprej prilagojena s skupnimi imeniki in jo izpusti iz katerega koli repozitorija Git, ustvarjenega za projekt.
  • Thesrc imenik vsebuje izvorno kodo vaše aplikacije z dvema podimenikoma: enega, ki vsebuje aplikacijo (ima isto ime kot imenik vašega projekta) in enega, ki vsebuje metapodatke aplikacije.
  • Imenik aplikacij vsebujevirov imenik, ki se uporablja za shranjevanje virov, kot so ikone aplikacij.

Ukazi za projekt aktovke

Theaktovko ukaz je, kako izvedete večino svojih interakcij s projektom aktovke. Pokrili smonovo zgoraj, ki se uporablja za nastavitev projekta Aktovka v dani mapi. Običajno pa boste morali v življenjskem ciklu aplikacije Aktovka uporabiti številne druge ukaze, nekateri pa so lahko nekoliko nerazumljivi.

Tu so najpogostejši ukazi v aktovki, ki jih boste uporabili:

  • razv: Ko ste v imeniku aplikacije, ta ukaz zažene to aplikacijonačin za razvijalce. Način za razvijanje omogoča zagon aplikacije z vsemi kompleti nameščenih knjižnic, vendar vam ni treba uradno zapakirati za dostavo. Največkrat jo boste pri razvoju aplikacije preizkusili v načinu za razvoj. Če so se od zadnjega teka kake odvisnosti spremenilerazv, uporabi-d zastavico, da jih posodobite.
  • graditi: Izdela kopijo aplikacije v obliki, ki je potrebna za pakiranje za distribucijo. To se razlikuje odrazv tako da lahko gradite za različne platforme, če je oder nameščen.
  • nadgradnja: Posodobi zgradbo aplikacije. To je hiter način, da zagotovite, da ima vaša aplikacija najnovejšo kodo, namesto da bi jo uporabljalagraditi, ki regenerira veliko več datotek. Mimo-d zastavico za posodobitev odvisnosti in-r zastavico za posodobitev virov (to je za kopiranje virov iz različice za razvijalce aplikacije v različico za izdelavo).
  • teči: Zažene vgrajeno različico aplikacije. To v bistvu simulira zagon zapakirane in uvedene različice aplikacije. Mimo-u zastavico za posodobitev katere koli kode pred zagonom.
  • paket: Ustvari paket za namestitev aplikacije iz vgrajene različice aplikacije. Končni rezultat tega je artefakt, ki ga lahko daste drugim za namestitev vašega programa - npr. .MSI v sistemu Windows.

Tu je nekaj manj pogosto uporabljenih ukazov za aktovke:

  • ustvariti: Ne gre zamenjati znovoustvariti ustvari gradbeni oder za namestitveni program - način za izdelavo namestitvenega programa za določeno platformo. Ko nastavite aplikacijo znovo, prihaja z odrom za platformo, na kateri delate;ustvariti vam omogoča, da po potrebi dodate oder za drugo platformo.
  • nadgradnja: Nadgradi komponente, ki se uporabljajo za pakiranje aplikacije, na primer ogrodje Wix.
  • objavi: Objavi zapakirano aplikacijo v kanalu za objave, kot je trgovina z aplikacijami. (Od tega pisanja ta funkcija še ne deluje.)

Če povzamemo, to je vrstni red, v katerem bi uporabili ukaze Aktovka v običajnem življenjskem ciklu aplikacije:

  • novo da ustvarite aplikacijo
  • razv za zagon aplikacije, ko delate na njej
  • graditi ustvariti različico aplikacije, ki bo pakirana za distribucijo
  • teči za preizkus zagnane pakirane različice aplikacije
  • nadgradnja za posodobitev pakirane različice aplikacije s spremembami kode
  • paket za namestitev pakirane različice aplikacije z namestitvenim programom

Ustvarjanje aktovke

Ustvarjanje programa Python kot aktovke je enako kot ustvarjanje katere koli druge aplikacije Python. Glavna vprašanja vključujejo strukturo projekta. Vstopna točka aplikacije je__main__.py v imeniku aplikacij, ki se naložiapp.py iz istega imenika in se izvršiglavni (). Ko inicializirate projekt, se v njem napolnijo nadomestne različice nekaterih projektnih datotek, ki jih lahko po potrebi sestavite ali nadomestite.

Če preoblikujeteobstoječe za uporabo aktovke, poskrbite, da jo boste strukturirali tako, da bo vstopna točka tisto, kar aktovka pričakuje. Če na primer kode niste shranili vsrc imenik, boste morali kodo premakniti vsrc in odpraviti morebitne nezdružljivosti na svojih poteh in strukturah imenikov.

Upoštevati je treba tudi, kako ravnati z odvisnostmi drugih proizvajalcev. Thepyproject.toml datoteka v imeniku vašega projekta nadzoruje, katere odvisnosti želite dodati projektu. Če je vaš projekt imenovanmojprojekt, potempyproject.toml bo vseboval oddelek z imenom[tool.briefcase.app.myproject], zzahteva vrstica, v kateri so navedene vse zahteve, kot bi bile določene vzahteve.txt mapa. Če vaš projekt na primer potrebujeregularni izraz inČrna, bi to vrstico nastavili nazahteva = ["regularni izraz", "črn"]. Nato bi uporabiliaktovka dev -d posodobiti odvisnosti za razvojno različico projekta inposodobitev aktovke -d posodobiti odvisnosti v pakirani različici.

Pakiranje in dostava aplikacij za aktovke

Ko enkrat zaženetepaket aktovke, boste videli, da se distribucijski program za vaš program prikaže v podimeniku imenika projekta, ki ustreza platformi, za katero ste zgradili. Imenik bo na primer za Microsoft Windowsokna, in za nadaljnjo distribucijo bo.msi datoteko z istim imenom kot vaš projekt. Za Android in iOS bodo rezultati projekti Gradle oziroma Xcode, ki jih bo treba sestaviti z uporabo teh orodij, da jih bo mogoče namestiti na te platforme.

Kako narediti več s Pythonom

  • Kako zagnati Anacondo vzporedno z drugimi Pythoni
  • Kako uporabljati podatkovne razrede Python
  • Začnite z async v Pythonu
  • Kako uporabljati asyncio v Pythonu
  • 3 koraki do prenove async Pythona
  • Kako uporabiti PyInstaller za ustvarjanje izvršljivih datotek Python
  • Vadnica za Cython: Kako pospešiti Python
  • Kako namestiti Python na pameten način
  • Kako upravljati projekte Python s poezijo
  • Kako upravljati projekte Python s Pipenv
  • Virtualenv in venv: Razložena navidezna okolja Python
  • Python virtualenv in venv dela in ne sme
  • Razloženi navoji Python in podprocesi
  • Kako uporabljati razhroščevalnik Python
  • Kako uporabiti timeit za profiliranje kode Python
  • Kako uporabiti cProfile za profiliranje kode Python
  • Kako pretvoriti Python v JavaScript (in nazaj)
$config[zx-auto] not found$config[zx-overlay] not found