Ohjelmointi

Kuinka pakata Python-sovellukset BeeWare-salkulla

Python puuttuu muutamilla alueilla. Esimerkiksi Python ei ole nopein kieli, mutta NumPyn kaltaiset kolmannen osapuolen kirjastot antavat sinun kiertää sitä. Python on kuitenkin puutteellisin pakkaus. Toisin sanoen Pythonilta puuttuu johdonmukainen sisäinen mekanismi itsenäisen binaarin luomiseksi sovelluksesta. Mene ja Rust tee tämä. Miksi Python ei voi?

Enimmäkseen se johtuu siitä, että Pythonilla ei ole kulttuuria tällaisista käyttötapauksista vasta suhteellisen äskettäin sen historiassa. Joten vasta suhteellisen äskettäin alkoi näkyä kolmansien osapuolten moduuleja, joiden avulla Python-sovellukset voidaan pakata erillisinä binaareina. PyInstaller - jonka käsittelin aiemmin - on yksi tällainen sovellus. Tässä artikkelissa tarkastelemme vieläkin tyylikkäämpää ja tehokkaampaa apuohjelmaa Python-sovellusten pakkaamiseen, BeeWare's Briefcase.

[Myös: Python virtualenv ja venv do and don'ts]

Salkusta on kuitenkin kaksi huomautuksen arvoista huomautusta. Ensinnäkin salkku ei tee alustojen välisiä pakkauksia; sinun on rakennettava alustalle, jota käytät. Toiseksi salkku toimii parhaiten sovellusten kanssa, jotka käyttävät jonkinlaista GUI-työkalupakettia. Seuraavassa käsitellään yksityiskohtaisesti näitä asioita.

Mikä on BeeWare-salkku?

Salkku on osa BeeWaren yleistä työkalupakettia sovellusten luomiseen, ja eri osat täydentävät toisiaan. Esimerkiksi BeeWaren Kivyn avulla voit luoda Pythonissa monialaisia ​​käyttöliittymäsovelluksia, jotka toimivat paitsi kaikilla tärkeimmillä käyttöjärjestelmillä, myös verkossa. Mutta tässä keskitymme salkkuun, jota voidaan käyttää muiden työkalujen kanssa tai ilman.

Salkku pakkaa sovellukset kaikkiin tukemiinsa käyttöjärjestelmiin yleisen muodon avulla kyseisen alustan sovelluksille:

  • Microsoft Windows (MSI-asennusohjelma)
  • Mac käyttöjärjestelmä (.sovellus muotoinen tiedosto)
  • Linux (AppImage)
  • iOS (Xcode-projekti)
  • Android (Gradle-projekti)

Jos haluat ottaa sen käyttöön iOS- tai Android-laitteissa, tarvitset kehityspaketteja kyseisille alustoille.

Yksi asia, jonka salkku tekeeei tuki on alustojen välinen käyttöönotto. Jos esimerkiksi olet Windows-käyttäjä, et voi rakentaa macOS-sovellusta. tarvitset MacOS: n tekemään sen. Muut Pythonin sovelluspaketit ovat samalla tavoin rajoitettuja, joten tämä rajoitus ei suinkaan ole yksinomaan salkku.

Salkku ei myöskään ole "kääntäjä" - se ei muuta Python-ohjelmia niiden alkuperäisiksi konekoodiekvivalenteiksi. Sovelluksesi eivät toimi nopeammin, kun ne otetaan käyttöön salkkuohjelmina kuin normaalisti.

Salkun projektin määritys

Salkku vaatii sinun luomaan oma projektihakemisto, jolla on oma virtuaalinen ympäristö. Jos et vielä tunne venvejä, kuten Python-virtuaaliympäristöjä kutsutaan, niihin kannattaa päästä vauhdilla, koska uusinta Python-kehitystä pyörii voimakkaasti niiden ympärillä.

Kun olet asettanut venv japip asenna salkku siinä käytät Salkun omaa komentorivityökalua salkku-pakattujen projektien määrittämiseen, hallintaan ja toimittamiseen. Tämä muistuttaa tapaa, jolla runous toimii: Suurin osa korkean tason vuorovaikutuksistasi projektin kanssa tapahtuu työkalun kautta, joten sinun ei tarvitse luoda tiedostoja manuaalisesti tai muokata kokoonpanoja.

Aloita uusi salkku-projekti avaamalla projektihakemiston CLI, aktivoimalla virtuaalinen ympäristö (olettaen, että et tee IDE: n CLI: tä tekemään niin automaattisesti) ja kirjoitasalkku uusi. Tämä luo telineet projektihakemistoon salkku-projektille.

Sinun on ensin vastattava joihinkin projektiin liittyviin kysymyksiin, ja useimpiin niistä voit vain painaaTulla sisään hyväksyä oletus. Mutta yksi kysyttävistä kysymyksistä - viimeinen, itse asiassa - on tärkeä asia: käyttöliittymän valinta.

Yksi BeeWaren muista tarjouksista on käyttöliittymän työkalupakki nimeltä Toga, jolla luodaan käyttöliittymiä Python-ohjelmissa käyttämällä alustalle omia käyttöliittymäkomponentteja. Mikäli haluat siirtyä Togan oppimiseen työskennellessäsi myös Salkun kanssa, mikään ei estä sinua. Tai voit valita ”Ei mitään” ja luoda komentoriviltä ajettavan ”päättömän” sovelluksen tai käyttää kolmannen osapuolen käyttöliittymän työkalupakettia tai ikkunointijärjestelmää, kuten Pyglet tai PyQT.

Huomaa, että jos et asenna mitään käyttöliittymän työkalupakettia, sovelluksella ei ole lainkaan konsolin vuorovaikutteisuutta - ts. Se ei avaa konsoli-ikkunaa eikä tulosta mitään konsolille. Tämä on hyödyllistä, jos asennat ohjelmaa, joka ei vaadi konsolin toimintaa - esimerkiksi jos se toimii paikallisena verkkopalvelimena ja käyttää vuorovaikutuksessa verkkoselainta. Mutta vielä ei ole mahdollisuutta sallia Briefcase-ohjelmien, joissa ei ole asennettua käyttöliittymäpakettia, suorittamista konsolin kanssa.

Salkun projektirakenne

Äskettäin aloitetussa salkku-sovellushakemistossa on useita tiedostoja esiasennettuna:

  • Sovellushakemiston ylätaso sisältää projektin lisenssin,pyproject.toml tiedosto, README-tiedostomalli ReStructured Text -muodossa ja a.gitignore tiedosto, joka on valmiiksi mukautettu yleisillä hakemistoilla, jotta se voidaan jättää pois kaikista projektille luotuista Git-arkistoista.
  • src hakemisto sisältää sovelluksesi lähdekoodin, jossa on kaksi alihakemistoa: yksi, joka sisältää sovelluksen (sillä on sama nimi kuin projektihakemistollasi) ja toinen, joka sisältää sovelluksen metatiedot.
  • Sovellushakemisto sisältää aresursseja hakemisto, jota käytetään resurssien, kuten sovelluskuvakkeiden, tallentamiseen.

Salkun projektikomennot

salkku -komento on, kuinka teet suurimman osan vuorovaikutuksesta salkku-projektin kanssa. KatimmeUusi yllä olevaa komentoa, jota käytetään salkku-projektin määrittämiseen tiettyyn kansioon. Mutta sinun on yleensä käytettävä monia muita komentoja Salkku-sovelluksen elinkaaren aikana, ja jotkut niistä voivat olla hieman vastakkaisia.

Tässä ovat yleisimmät käyttämäsi salkun komennot:

  • dev: Kun olet sovellushakemistossa, tämä komento suorittaa kyseisen sovelluksendev-tila. Kehitystila antaa sinun käyttää sovellusta täydellä määrällä asennettuja kirjastoja, mutta sinun ei tarvitse muodollisesti pakata toimitusta. Suurimmaksi osaksi kehität sovellustasi testaamalla sitä dev-tilassa. Jos riippuvuudet ovat muuttuneet edellisen juoksusi jälkeendev, Käytä-d lippu päivittääksesi ne.
  • rakentaa: Rakentaa kopion sovelluksesta muodossa, joka tarvitaan sen pakkaamiseen jakelua varten. Tämä eroaadev siinä, että voit rakentaa eri alustoille, jos telineet on asennettu.
  • päivittää: Päivitetään sovelluksen koontiversio. Tämä on nopea tapa varmistaa, että sovelluksesi koontiversiossa on uusin koodi, eikä sitärakentaa, joka regeneroi paljon enemmän tiedostoja. Anna minulle-d lippu päivittää riippuvuudet ja-r lippu päivittää resursseja (eli kopioida resursseja sovelluksesi dev-versiosta koontiversioon).
  • juosta: Suorittaa sovelluksen rakennetun version. Tämä simuloi lähinnä sovelluksen pakatun ja käyttöönotetun version suorittamista. Anna minulle-u lippu päivittääksesi koodin ennen suoritusta.
  • paketti: Luo sovelluksen asennuspaketin sovelluksen sisäisestä versiosta. Tämän lopputulos on esine, jonka voit antaa muille ohjelman asentamiseksi - esim. .MSI Windowsissa.

Tässä on joitain harvemmin käytettyjä salkun komentoja:

  • luoda: Ei pidä sekoittaaUusiluoda luo telineet sovelluksen asentajalle - tapa rakentaa sovelluksen asennusohjelma tietylle alustalle. Kun määrität sovelluksenUusi, sen mukana toimitetaan telineet alustalle, jolla työskentelet;luoda voit lisätä telineitä toiselle alustalle tarvittaessa.
  • päivittää: Päivittää sovelluksen pakkaamiseen käytetyt komponentit, kuten Wix-kehyksen.
  • julkaista: Julkaisee pakatun sovelluksen julkaisukanavalle, kuten sovelluskaupalle. (Tämän kirjoituksen jälkeen tämä ominaisuus ei vielä toimi.)

Yhteenvetona voidaan todeta, että tässä järjestyksessä käytät salkukomentoja sovelluksen tyypillisessä elinkaaressa:

  • Uusi luoda sovelluksen
  • dev käyttää sovellusta sitä työskennellessäsi
  • rakentaa luoda versio jaettavaksi pakattavasta sovelluksesta
  • juosta testata sovelluksen pakattu versio
  • päivittää pitää sovelluksen pakattu versio ajan tasalla koodimuutoksilla
  • paketti ottaa sovelluksen pakattu versio käyttöön asennusohjelman kanssa

Salkun sovelluksen luominen

Python-ohjelman luominen salkku-sovellukseksi on suunnilleen sama kuin minkä tahansa muun Python-sovelluksen luominen. Tärkeimmät kysymykset koskevat projektin rakennetta. Sovelluksen alkupiste on__main__.py sovellushakemistossa, joka latautuuapp.py samasta hakemistosta ja suorittaamain (). Kun alustat projektin, se täytetään joidenkin projektitiedostojen paikkamerkkiversioilla, jotka voit rakentaa tai korvata tarpeen mukaan.

Jos muutatnykyinen projektin käyttää salkua, varmista, että rakennat sen siten, että sen alkupiste on se, mitä salkku odottaa. Jos et esimerkiksi tallentanut koodia asrc hakemistoon, sinun on siirrettävä koodisrc ja korjaa kaikki ristiriidat sen poluissa ja hakemistorakenteissa.

Toinen mielessä pidettävä asia on se, kuinka käsitellä kolmansien osapuolten riippuvuuksia.pyproject.toml projektihakemistosi tiedosto määrittää, mitkä riippuvuudet lisätään projektiin. Jos projektisi on nimettyminun projektinisittenpyproject.toml sisältää osan nimeltä[tool.briefcase.app.myproject], kanssavaatii rivi, joka listaa kaikki vaatimukset, kuten ne on määritelty kohdassa avaatimukset.txt tiedosto. Jos projektisi tarvitsee esimerkiksiregex jamusta, asetat tämän linjanvaatii = ["regex", "black"]. Sitten käytätsalkku dev -d - päivittää projektin kehitysversion riippuvuudet jasalkun päivitys -d päivittää pakatun version riippuvuudet.

Salkun sovellusten pakkaus ja toimitus

Kun olet juossutsalkku paketti, huomaat, että ohjelmallesi uudelleenjaettava tiedosto näkyy projektihakemiston alihakemistossa, joka vastaa rakentamaasi alustaa. Esimerkiksi Microsoft Windowsissa hakemisto tulee olemaanikkunat, ja uudelleenjaettavaksi tulee.msi tiedosto, jolla on sama nimi kuin projektillasi. Androidin ja iOS: n tulokset ovat vastaavasti Gradle- ja Xcode-projekteja, ja ne on koottava näiden työkalujen avulla, jotta ne voidaan ottaa käyttöön näille alustoille.

Kuinka tehdä enemmän Pythonilla

  • Kuinka ajaa Anacondaa vierekkäin muiden pythonien kanssa
  • Kuinka käyttää Python-tietoluokkia
  • Aloita asynkronointi Pythonissa
  • Asyncion käyttäminen Pythonissa
  • 3 vaihetta Pythonin asynkroniseen huoltoon
  • Kuinka käyttää PyInstalleria Python-suoritettavien tiedostojen luomiseen
  • Cython-opetusohjelma: Kuinka nopeuttaa Pythonia
  • Kuinka asentaa Python älykkäästi
  • Kuinka hallita Python-projekteja Poetryn avulla
  • Kuinka hallita Python-projekteja Pipenv: llä
  • Virtualenv ja venv: Python-virtuaaliympäristöt selitetty
  • Python virtualenv ja venv do and don'ts
  • Python-ketjuttaminen ja aliprosessit on selitetty
  • Kuinka käyttää Python-virheenkorjainta
  • Kuinka käyttää timeit Python-koodin profilointiin
  • CProfilen käyttäminen Python-koodin profilointiin
  • Kuinka muuntaa Python JavaScriptiksi (ja takaisin)