Release of PyOxidizer for packaging Python projects into standalone executables

Prezentat prima versiune a utilitarului PyOxidizer, care permite împachetarea unui proiect în limbajul Python sub forma unui fișier executabil autosuficient, incluzând interpretatorul Python și toate bibliotecile și resursele necesare funcționării. Aceste fișiere pot fi rulate în medii fără instrumentele Python instalate sau independent de existența versiunii necesare de Python. PyOxidizer poate, de asemenea, să formeze fișiere executabile legate static, care nu depind de bibliotecile sistemului. Codul proiectului este scris în limbajul Rust și se răspândește sub licența MPL (Mozilla Public License) 2.0.

Proiectul se bazează pe modulul omonim pentru limbajul Rust, care permite încorporarea interpretatorului Python în programele Rust pentru a rula scripturi Python în acestea. PyOxidizer a ieșit acum din sfera extensiei pentru Rust și este poziționat ca un instrument accesibil pentru o audiență mai largă, destinat formării și distribuirii pachetelor autosuficiente cu Python. Pentru cei care nu au nevoie să distribuie aplicații sub formă de fișier executabil, PyOxidizer oferă posibilități de generare a bibliotecilor potrivite pentru legarea cu orice aplicație pentru încorporarea interpretatorului Python și a setului necesar de extensii.

Pentru utilizatorii finali, livrarea proiectului sub forma unui singur fișier executabil simplifică semnificativ instalarea și elimină necesitatea de a gestiona dependențele, ceea ce este relevant, de exemplu, pentru proiectele complexe în Python, cum ar fi editorii video. Pentru dezvoltatorii de aplicații, PyOxidizer permite economisirea timpului în organizarea livrării aplicației, fără a fi nevoie să utilizeze diferite instrumente pentru formarea pachetelor pentru diverse sisteme de operare.

Utilizarea construcțiilor propuse are, de asemenea, un impact pozitiv asupra performanței - fișierele generate în PyOxidizer se execută mai repede decât cele care folosesc Python-ul de sistem, grație excluderii importului și determinării modulului de bază. În PyOxidizer, modulele sunt importate din memorie - toate modulele încorporate sunt încărcate direct în memorie și utilizate ulterior fără a accesa discul. În teste, timpul de pornire a aplicației atunci când se folosește PyOxidizer se reduce cu aproximativ 50%.

Printre proiectele similare deja existente se numără: PyInstaller (dezarhivează fișierul într-un director temporar și importă modulele din acesta), py2exe (legat de platforma Windows și necesită distribuirea mai multor fișiere), py2app (legat de macOS), cx-freeze (necesită împachetarea separată a dependențelor), Shiv și PEX (formează un pachet în format zip și necesită Python instalat în sistem), Nuitka (compilează codul, nu încorporează interpretul), pynsist (legat de Windows), PyRun (dezvoltare proprietară fără explicații referitoare la principiile de funcționare).

În etapa actuală de dezvoltare, PyOxidizer a implementat deja funcționalitatea principală de generare a fișierelor executabile pentru Windows, macOS și Linux. Printre funcțiile încă nedisponibile, se remarcă absența unui mediu standardizat de construire, imposibilitatea de a genera pachete în formatele MSI, DMG și deb/rpm, probleme la împachetarea proiectelor ce includ extensii complexe în limbajul C, lipsa comenzilor de gestionare a livrării („pyoxidizer add”, „pyoxidizer analyze” și „pyoxidizer upgrade”), suport limitat pentru Terminfo și Readline, absența suportului pentru versiuni diferite de Python 3.7, lipsa suportului pentru comprimarea resurselor, imposibilitatea de a realiza compilarea încrucișată.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster