PyOxidizer uslužni program za pakiranje Python projekata u izvršne datoteke

PyOxidizer

Prije nekoliko dana programeri su predstavili prvu verziju uslužnog programa PyOxidizer, koji se nudi kao uslužni program koji se može koristiti za pakiranje Python projekta u zasebnu izvršnu datoteku, uključujući tumač Python i sve potrebne biblioteke i resurse.

Takve datoteke mogu se pokretati u okruženjima bez instaliranog Python alata ili bez obzira na dostupnost potrebne verzije Pythona.

PyOxidizer također može generirati statički povezane izvršne datoteke koje nisu povezane sa sistemskim knjižnicama. Kôd projekta napisan je na jeziku Rust i distribuira se pod MPL (Mozilla Public License) 2.0.

O PyOxidizeru?

Projekat zasnovan je na istoimenom modulu za jezik Rust, koji vam omogućava ugrađivanje Python interpretera u programe Rust za pokretanje Python skripti na njima.

PyOxidizer Sada je prevazišao dodatak za Rust i pozicioniran je kao alat dostupan široj publici za izgradnju i distribuciju samostalnih Python paketa.

PyOxidizer uslužni program čiji je cilj riješiti problem distribucije Python aplikacija.

Za one koji ne trebaju distribuirati aplikacije u obliku izvršne datoteke, PyOxidizer nudi mogućnosti generiranja prikladnih biblioteka za povezivanje sa bilo kojom aplikacijom za ugrađivanje Python interpretera i potrebnog skupa ekstenzija u njih.

Distribucija aplikacija Python obično se smatra neriješenim problemom jer je Russel Keith-Magee identificirao distribuciju koda kao egzistencijalnu prijetnju dugovječnosti za Python. Prema njegovim riječima, Python nikada nije imao dosljednu istoriju kako dajem svoj kod nekome drugom, posebno ako ta druga osoba nije programer i samo želi koristiti moju aplikaciju.

Za krajnje korisnike, isporuka projekta kao jedne izvršne datoteke To u velikoj mjeri pojednostavljuje instalaciju i eliminira rad na odabiru zavisnosti, što je važno, na primjer, za složene Python projekte poput video uređivača.

Dok s druge strane Za programere aplikacija, PyOxidizer im omogućava uštedu vremena pri organizaciji isporuke aplikacije bez upotrebe različitih alata za kreiranje paketa za različite operativne sisteme.

Kako djeluje PyOxidizer?

Koristeći predložene verzije takođe ima pozitivan efekat na performanse: datoteke generirane u PyOxidizeru rade brže od korištenja Python sistema uklanjanjem uvoza i definiranjem osnovnih modula.

U PyOxidizer-u, moduli se uvoze iz memorije (svi ugrađeni moduli se odmah učitavaju u memoriju i zatim koriste bez pristupa disku). Tijekom testiranja, vrijeme pokretanja aplikacije s PyOxidizer-om je približno prepolovljeno.

Iz sličnih postojećih projekata moguće je uočiti: PyInstaller (otpakuje datoteku u privremeni direktorij i iz nje uvozi module).

  • Py2exe (povezan s Windows platformom i zahtijeva distribuciju više datoteka), py2app (povezan s macOS)
  • Cx-freeze (zahtijeva zasebno pakiranje zavisnosti), Shiv i PEX (čine zip paket i zahtijevaju Python na sistemu)
  • Nuitka (kompajlira kôd, a ne ugrađeni tumač), pynsist (povezan sa Windowsom), PyRun (vlastiti razvoj bez objašnjenja principa rada).

U trenutnoj fazi razvoja, PyOxidizer je već implementirao glavnu funkcionalnost za generiranje izvršnih datoteka za Windows, macOS i Linux.

Od dalekosežnih mogućnosti zabilježeno je odsustvo standardnog okruženja za kompilaciju, nemogućnost generiranja paketa u MSI, DMG i deb / rpm formatu, s problemima pakiranja za projekte koji uključuju složena proširenja na jezik C.

Iako nedostatak uputa za podršku isporuke ("dodavanje pioksidizatora", "analiza pioksidizatora" i "nadogradnja pioksidizatora") i ograničena podrška za Terminfo i Readline, nedostatak podrške za verzije koje nisu Python 3.7, nedostatak podrške za kompresija resursa, nemogućnost unakrsnog kompajliranja.

Izvor: https://pyoxidizer.readthedocs.io


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.