Uscita di PyOxidizer per imballare progetti Python in file eseguibili autonomi

Presentato prima emissione dell'utility PyOxidizer, che consente di impacchettare un progetto in Python in un file eseguibile autonomo, includendo l'interprete Python e tutte le librerie e risorse necessarie per funzionare. Questi file possono essere eseguiti in ambienti senza strumenti Python installati o indipendentemente dalla versione necessaria di Python. PyOxidizer può anche generare file eseguibili staticamente collegati, non legati a librerie di sistema. Il codice del progetto è scritto in Rust e è distribuito sotto licenza MPL (Mozilla Public License) 2.0.

Il progetto si basa su un modulo omonimo per Rust che consente di incorporare l'interprete Python in programmi Rust per eseguire script Python. PyOxidizer è ora andato oltre il semplice complemento per Rust e si posiziona come uno strumento accessibile a un pubblico più ampio per creare e distribuire pacchetti autonomi contenenti Python. Per chi non ha bisogno di distribuire applicazioni come file eseguibili, PyOxidizer offre la possibilità di generare librerie pronte per il collegamento con qualsiasi applicazione per incorporare l'interprete Python e il set necessario di estensioni.

Per gli utenti finali, la consegna del progetto come unico file eseguibile semplifica notevolmente l'installazione e elimina il lavoro di gestione delle dipendenze, cosa particolarmente rilevante per progetti complessi in Python, come i video editor. Per gli sviluppatori di applicazioni, PyOxidizer consente di risparmiare tempo nell'organizzazione della distribuzione dell'applicazione, senza necessità di utilizzare strumenti diversi per la creazione di pacchetti per diversi sistemi operativi.

L'uso dei pacchetti proposti ha anche un impatto positivo sulle prestazioni: i file generati in PyOxidizer si avviano più rapidamente rispetto all'uso di Python di sistema grazie all'esclusione dell'importazione e della definizione dei moduli di base. In PyOxidizer, i moduli vengono importati dalla memoria: tutti i moduli incorporati vengono caricati in memoria e poi utilizzati senza accedere al disco. Nei test, il tempo di avvio dell'applicazione utilizzando PyOxidizer è ridotto di circa la metà.

Tra i progetti simili già esistenti, si possono citare: PyInstaller (estrae il file in una cartella temporanea e importa i moduli da essa), py2exe (legato alla piattaforma Windows e richiede la distribuzione di più file), py2app (legato a macOS), cx-freeze (richiede un imballaggio separato delle dipendenze), Shiv e PEX (creano un pacchetto in formato zip e richiedono la presenza di Python nel sistema), Nuitka (compila il codice, invece di integrare l'interprete), pynsist (legato a Windows), PyRun (sviluppo proprietario senza spiegare i principi di funzionamento).

Nella fase attuale di sviluppo, PyOxidizer ha già implementato la funzionalità principale per la generazione di file eseguibili per Windows, macOS e Linux. Tra le funzionalità ancora non disponibili si segnala ci sono la mancanza di un ambiente di build standard, l'impossibilità di generare pacchetti nei formati MSI, DMG e deb/rpm, problemi con l'imballaggio di progetti che includono estensioni complesse in C, mancanza di comandi per la gestione della distribuzione («pyoxidizer add», «pyoxidizer analyze» e «pyoxidizer upgrade»), supporto limitato per Terminfo e Readline, assenza di supporto per versioni diverse da Python 3.7, assenza di supporto per la compressione delle risorse, impossibilità di cross-compilazione.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster