Rhyddhau PyOxidizer ar gyfer pecynnu prosiectau Python yn weithredadwy hunangynhwysol

A gyflwynwyd gan datganiad cyntaf o'r cyfleustodau PyOxidizer, sy'n eich galluogi i becynnu prosiect yn Python i ffurf ffeil gweithredadwy hunangynhwysol, gan gynnwys y dehonglydd Python a'r holl lyfrgelloedd ac adnoddau angenrheidiol ar gyfer y gwaith. Gellir gweithredu ffeiliau o'r fath mewn amgylcheddau heb offer Python wedi'u gosod neu waeth beth fo'r fersiwn ofynnol o Python. Gall PyOxidizer hefyd gynhyrchu ffeiliau gweithredadwy sydd wedi'u cysylltu'n statig nad ydynt yn gysylltiedig â llyfrgelloedd system. Mae cod y prosiect wedi'i ysgrifennu yn Rust a dosbarthu gan trwyddedig o dan MPL (Trwydded Gyhoeddus Mozilla) 2.0.

Mae'r prosiect yn seiliedig ar fodiwl iaith Rust o'r un enw, sy'n eich galluogi i fewnosod cyfieithydd Python i mewn i raglenni Rust i redeg sgriptiau Python ynddynt. Mae PyOxidizer bellach wedi mynd y tu hwnt i fod yn ychwanegiad Rust ac mae'n cael ei leoli fel offeryn ar gyfer adeiladu a dosbarthu pecynnau Python hunangynhwysol i gynulleidfa ehangach. I'r rhai nad oes angen iddynt ddosbarthu cymwysiadau fel ffeil gweithredadwy, mae PyOxidizer yn darparu'r gallu i gynhyrchu llyfrgelloedd sy'n addas ar gyfer cysylltu ag unrhyw raglen i fewnosod cyfieithydd Python a'r set angenrheidiol o estyniadau.

Ar gyfer defnyddwyr terfynol, mae cyflwyno'r prosiect fel un ffeil gweithredadwy yn symleiddio'r gosodiad yn fawr ac yn dileu'r gwaith o ddewis dibyniaethau, sy'n bwysig, er enghraifft, ar gyfer prosiectau Python cymhleth fel golygyddion fideo. Ar gyfer datblygwyr cymwysiadau, mae PyOxidizer yn caniatáu ichi arbed amser wrth drefnu cyflwyno cymwysiadau, heb yr angen i ddefnyddio gwahanol offer i greu pecynnau ar gyfer gwahanol systemau gweithredu.

Mae'r defnydd o'r cynulliadau arfaethedig hefyd yn cael effaith gadarnhaol ar berfformiad - mae ffeiliau a gynhyrchir yn PyOxidizer yn rhedeg yn gyflymach nag wrth ddefnyddio system Python oherwydd dileu mewnforio a diffinio modiwlau sylfaen. Yn PyOxidizer, mae modiwlau'n cael eu mewnforio o'r cof - mae'r holl fodiwlau adeiledig yn cael eu llwytho ar unwaith i'r cof ac yna'n cael eu defnyddio heb gyrchu disg). Mewn profion, mae amser lansio cymwysiadau wrth ddefnyddio PyOxidizer yn cael ei leihau tua hanner.

Ymhlith y prosiectau tebyg sydd eisoes yn bodoli, gellir nodi'r canlynol: PyGosodwr (yn dadbacio'r ffeil i gyfeiriadur dros dro ac yn mewnforio modiwlau ohono), py2exe (yn gysylltiedig â llwyfan Windows ac yn gofyn am ddosbarthu ffeiliau lluosog), py2app (clwm wrth macOS), cx-rhewi (angen pecynnu dibyniaeth ar wahân), Shiv и PEX (ffurfiwch becyn mewn fformat zip ac mae angen Python ar y system), Nuitka (yn llunio'r cod yn hytrach na gwreiddio cyfieithydd), pynsist (clwm wrth Windows) PyRun (datblygiad perchnogol heb esboniad o egwyddorion gweithredu).

Ar y cam datblygu presennol, mae PyOxidizer eisoes wedi gweithredu'r prif swyddogaeth ar gyfer cynhyrchu ffeiliau gweithredadwy ar gyfer Windows, macOS a Linux. O gyfleoedd nad ydynt ar gael ar hyn o bryd nodir diffyg amgylchedd adeiladu safonol, anallu i gynhyrchu pecynnau mewn fformatau MSI, DMG a deb / rpm, problemau gyda phrosiectau pecynnu sy'n cynnwys estyniadau cymhleth yn yr iaith C, diffyg gorchmynion i gefnogi cyflwyno (“pyoxidizer add”, “dadansoddwr pyoxidizer” ac “uwchraddio pyoxidizer”), cefnogaeth gyfyngedig i Terminfo a Readline, diffyg cefnogaeth ar gyfer datganiadau heblaw Python 3.7, diffyg cefnogaeth ar gyfer cywasgu adnoddau, anallu i groes-grynhoi.

Ffynhonnell: opennet.ru

Ychwanegu sylw