Programmēšana

Kā iesaiņot Python lietotnes ar BeeWare portfeli

Dažos apgabalos Python trūkst. Piemēram, Python nav visstraujākā valoda, taču trešo pušu bibliotēkas, piemēram, NumPy, ļauj jums to apiet. Tomēr, kur Python ir visvairāk trūkums, ir iepakojums. Tas ir, Python trūkst konsekventa iekšējā mehānisma, lai no lietojumprogrammas ģenerētu atsevišķu bināru failu. Ejiet un Rust to izdariet. Kāpēc Python nevar?

Pārsvarā tas ir saistīts ar to, ka Python līdz šim vēsturē nebija šādu lietošanas kultūru. Tātad tikai salīdzinoši nesen sāka parādīties trešo pušu moduļi, kas ļauj Python lietotnes iepakot kā atsevišķus bināros failus. PyInstaller - kuru es apskatīju iepriekš - ir viena no šādām lietotnēm. Šajā rakstā mēs aplūkosim vēl elegantāku un jaudīgāku Python lietotņu iepakojuma lietderību BeeWare's Portfelis.

[Arī vietnē: Python virtualenv un venv do's un don'ts]

Tomēr ir divi iebildumi, kurus vērts norādīt uz portfeli. Pirmkārt, portfelis neveic iepakošanu starp platformām; jums jāveido platforma, kuru izmantojat. Otrkārt, portfelis vislabāk darbojas ar lietotnēm, kurās tiek izmantots kāda veida GUI rīkkopa. Tālāk mēs detalizēti aprakstīsim šos jautājumus.

Kas ir BeeWare portfelis?

Portfelis ir daļa no BeeWare vispārējā rīku komplekta, lai izveidotu lietotnes, un dažādi gabali papildina viens otru. Piemēram, BeeWare’s Kivy ļauj jums izveidot starpplatformu GUI lietotnes Python, kas darbojas ne tikai visās galvenajās OS platformās, bet arī tīmeklī. Bet šeit mēs pievērsīsimies portfelim, kuru var izmantot kopā ar citiem rīkiem vai bez tiem.

Portfelis iesaiņo lietotnes visām tās atbalstītajām operētājsistēmām, izmantojot kopēju formātu lietotnēm šajā platformā:

  • Microsoft Windows (MSI instalētājs)
  • macOS (.app formāta fails)
  • Linux (AppImage)
  • iOS (Xcode projekts)
  • Android (Gradle projekts)

Lai izvietotu operētājsistēmā iOS vai Android, jums būs nepieciešami šo platformu izstrādes komplekti.

Viena lieta, ko dara Portfelis atbalsts ir izvietošana starp platformām. Piemēram, ja esat Windows lietotājs, nevar izveidot MacOS lietotni; lai to izdarītu, jums būs nepieciešama MacOS. Arī citi Python lietotņu paketes ir līdzīgi ierobežoti, tāpēc šis ierobežojums nekādā ziņā nav ekskluzīvs tikai portfelim.

Portfelis arī nav “kompilators” - tas nepārveido Python programmas par to vietējiem mašīnkodu ekvivalentiem. Jūsu lietotnes nedarbosies ātrāk, ja tās būs izvietotas kā portfeļa lietotnes, nekā parasti.

Portfeļa projekta iestatīšana

Portfelim ir nepieciešams izveidot īpašu projekta direktoriju ar savu virtuālo vidi. Ja jūs vēl neesat pazīstams ar “venvs”, kā tiek sauktas par Python virtuālajām vidēm, ir vērts uz tām paātrināties, jo mūsdienīgā Python izstrāde ļoti apgrozās ap tām.

Pēc tam, kad esat izveidojis venv unPIP instalējiet portfeli tajā izmantosiet sava portfeļa komandrindas rīkus, lai izveidotu, pārvaldītu un piegādātu portfeļa iepakotos projektus. Tas ir līdzīgs tam, kā darbojas tādi rīki kā Dzeja: Lielākā daļa jūsu augsta līmeņa mijiedarbības ar projektu notiek, izmantojot rīku, tāpēc jums nav manuāli jāveido faili vai jārediģē konfigurācijas.

Lai sāktu jaunu portfeļa projektu, projekta direktorijā atveriet CLI, aktivizējiet virtuālo vidi (pieņemot, ka neizmantojat IDE CLI, lai to izdarītu automātiski) un ierakstietportfelis jauns. Tas jūsu projekta direktorijā izveido sastatnes portfeļa projektam.

Sākumā jums būs jāatbild uz dažiem jautājumiem par projektu, un lielāko daļu no tiem varat vienkārši nospiestEnter lai pieņemtu noklusējumu. Bet viens no jautājumiem, kas jums tiks uzdots - pēdējais, patiesībā, ir ļoti svarīgs: izmantojamās GUI ietvara izvēle.

Viens no citiem BeeWare piedāvājumiem ir lietotāja saskarnes rīku komplekts Toga, kas paredzēts GUI izveidei Python programmās, izmantojot platformas vietējos lietotāja interfeisa komponentus. Ja vēlaties sākt mācīties Togu, strādājot arī ar portfeli, nekas neaptur jūs. Vai arī jūs varat atlasīt “None” un izveidot lietotni “bez galvas”, kas darbojas no komandrindas, vai arī izmantot trešās puses lietotāja saskarnes rīkkopu vai logu sistēmu, piemēram, Pyglet vai PyQT.

Ņemiet vērā, ka, ja neinstalējat lietotāja saskarnes rīkkomplektu, lietotnei nebūs nekādas konsoles interaktivitātes - t.i., tā neatvērs konsoles logu un konsolē neko nedrukās. Tas ir noderīgi, ja izvietojat programmu, kurai nav nepieciešama mijiedarbība ar konsoli, piemēram, ja tā darbojas kā vietējais tīmekļa serveris un mijiedarbībai izmanto tīmekļa pārlūkprogrammu. Bet pagaidām nav iespēju ļaut Briefcase programmām, kurās nav instalēta UI pakotne, darboties ar konsoli.

Portfeļa projekta struktūra

Svaigi iesāktajā Briefcase lietotņu direktorijā ir iepriekš instalēti vairāki faili:

  • Lietotņu direktorijas augšējā līmenī ir projekta licence,pyproject.toml fails, README faila paraugs pārstrukturēta teksta formātā un a.gitignore fails, kas ir iepriekš pielāgots kopējiem direktorijiem, lai izlaistu no jebkura projektam izveidotā Git repozitorija.
  • Thesrc direktorijā ir jūsu lietotnes avota kods ar diviem apakšdirektorijiem: vienu, kurā ir lietotne (tai ir tāds pats nosaukums kā jūsu projekta direktorijai), un otru, kurā ir lietotnes metadati.
  • Lietotņu direktorijā ir aresursiem direktoriju, kas tiek izmantots tādu resursu glabāšanai kā lietojumprogrammu ikonas.

Portfeļa projekta komandas

Theportfelis komanda ir veids, kā jūs veicat lielāko daļu mijiedarbības ar portfeli. Mēs pārklājāmjauns komandu, kas tiek izmantota, lai izveidotu portfeļa projektu noteiktā mapē. Bet lietojumprogrammas Portfelis dzīves cikla laikā parasti būs jāizmanto daudzas citas komandas, un dažas no tām var būt nedaudz pretrunīgas.

Tālāk ir norādītas visbiežāk izmantotās portfeļa komandas.

  • dev: Atrodoties lietotņu direktorijā, šī komanda palaiž šo lietotnidev režīms. Izstrādes režīms ļauj palaist lietojumprogrammu ar pilnu instalēto bibliotēku papildinājumu, bet piegādei nav oficiāli jāiepako. Izstrādājot lietojumprogrammu, lielākoties to pārbaudīsit, izmantojot dev režīmu. Ja kopš pēdējās skrējiena ir mainījušās kādas atkarībasdev, izmantojiet-d karodziņu, lai tos atjauninātu.
  • būvēt: Izveido lietojumprogrammas kopiju formā, kas nepieciešama tās iesaiņošanai izplatīšanai. Tas atšķiras nodev tajā, ka jūs varat izveidot dažādas platformas, ja ir uzstādītas sastatnes.
  • Atjaunināt: Atjaunina lietojumprogrammas būvējumu. Tas ir ātrs veids, kā pārliecināties, vai lietojumprogrammas būvējumam ir visjaunākais kods, nevis to izmantotbūvēt, kas atjauno daudz vairāk failu. Iet garām-d karodziņu, lai atjauninātu atkarības, un-r karodziņš, lai atjauninātu resursus (tas ir, lai kopētu resursus no lietotnes izstrādātāja versijas uz būvēšanas versiju).
  • palaist: Palaiž lietotnes veidoto versiju. Tas būtībā simulē lietojumprogrammas pakotnes un izvietotās versijas palaišanu. Iet garām-u karodziņu, lai pirms palaišanas atjauninātu jebkuru kodu.
  • iepakojums: Izveido lietojumprogrammu instalēšanas pakotni no lietotnes veidotās versijas. Rezultāts ir artefakts, kuru varat dot citiem, lai instalētu jūsu programmu, piemēram, .MSI operētājsistēmā Windows.

Šeit ir dažas no retāk izmantotajām komandām Portfelis:

  • izveidot: Nevajag jaukt arjaunsizveidot izveido sastatnes lietojumprogrammu instalētājam - veids, kā izveidot lietotnes instalētāju konkrētai platformai. Kad iestatāt lietotni arjauns, tas nāk ar sastatnēm platformai, pie kuras strādājat;izveidot ļauj vajadzības gadījumā pievienot sastatnes citai platformai.
  • jaunināt: Tiek jaunināti komponenti, kas izmantoti lietotnes iepakošanai, piemēram, Wix ietvars.
  • publicēt: Publicē iepakoto lietotni publikācijas kanālā, piemēram, lietotņu veikalā. (Šajā rakstā šī funkcija vēl nedarbojas.)

Apkopojot, šeit ir secība, kādā tipiskajā lietotnes dzīves ciklā izmantojat komandas Portfelis:

  • jauns lai izveidotu lietotni
  • dev lai palaistu lietotni, strādājot ar to
  • būvēt lai izveidotu izplatīšanai iesaiņojamās lietotnes versiju
  • palaist lai pārbaudītu lietotnes iepakoto versiju
  • Atjaunināt lai lietotnes iepakotā versija tiktu atjaunināta ar izmaiņām kodā
  • iepakojums izvietot lietotnes iepakoto versiju kopā ar instalētāju

Portfeļa lietotnes izveide

Programmas Python izveide kā lietotne Portfelis ir gandrīz tāda pati kā jebkuras citas Python lietojumprogrammas izveide. Galvenie jautājumi ir saistīti ar projekta struktūru. Lietotnes ieejas punkts ir__main__.py ielādējamo lietotņu direktorijāapp.py no tā paša direktorija un izpildagalvenais (). Inicializējot projektu, tas tiks aizpildīts ar dažu projekta failu viettura versijām, kuras pēc vajadzības varat izveidot vai aizstāt.

Ja pārveidojatesošie Ja izmantojat portfeli, pārliecinieties, ka to strukturējat tā, lai tā sākumpunkts būtu tas, ko sagaida portfelis. Piemēram, ja neesat saglabājis kodu asrc direktorijā, jums būs jāpārvieto kods uzsrc un novērš visas savietojamības savos ceļos un direktoriju struktūrās.

Otra lieta, kas jāpatur prātā, ir tas, kā rīkoties ar trešo personu atkarībām. Thepyproject.toml fails jūsu projekta direktorijā kontrolē, kuras atkarības pievienot projektam. Ja jūsu projekts ir nosauktsmyproject, pēc tampyproject.toml saturēs sadaļu ar nosaukumu[tool.briefcase.app.myproject], arprasa rinda, kurā uzskaitītas visas prasības, kā tās norādītas aprasības.txt failu. Ja jūsu projektam ir, piemēram,regex unmelns, jūs iestatīsit šo līniju uzpieprasa = ["regex", "black"]. Pēc tam jūs izmantojatportfelis dev -d atjaunināt projekta izstrādes versijas atkarības unportfeļa atjauninājums -d atjaunināt atkarības iepakotajā versijā.

Portfeļa lietotņu iesaiņošana un piegāde

Kad esat palaistsportfeļa iepakojums, jūs redzēsiet, ka jūsu programmai atkārtoti izplatāma parādīsies projekta direktorija apakšdirektorijā, kas atbilst jūsu izveidotajai platformai. Piemēram, Microsoft Windows direktorija būslogi, un atkārtoti izplatāms būs.msi failu ar tādu pašu nosaukumu kā jūsu projektam. Operētājsistēmām Android un iOS rezultāti būs attiecīgi Gradle un Xcode projekti, un tie būs jāapkopo, izmantojot šos rīkus, lai tos varētu izvietot šajās platformās.

Kā darīt vairāk ar Python

  • Kā palaist Anakondu plecu pie pleca ar citiem pitoniem
  • Kā izmantot Python datu klases
  • Sāciet darbu ar asinhronizāciju Python
  • Kā lietot asyncio Python
  • 3 soļi līdz Python asinhronajam remontam
  • Kā izmantot PyInstaller, lai izveidotu Python izpildāmos failus
  • Cython apmācība: kā paātrināt Python
  • Kā instalēt Python viedajā veidā
  • Kā pārvaldīt Python projektus, izmantojot dzeju
  • Kā pārvaldīt Python projektus ar Pipenv
  • Virtualenv un venv: paskaidrotas virtuālās Python vides
  • Python virtualenv un venv do's un don'ts
  • Paskaidrots Python vītne un apakšprocesi
  • Kā izmantot Python atkļūdotāju
  • Kā izmantot Timeit, lai profilētu Python kodu
  • Kā izmantot cProfile Python koda profilēšanai
  • Kā konvertēt Python uz JavaScript (un atkal atpakaļ)
$config[zx-auto] not found$config[zx-overlay] not found