prima versione dell'utilità , 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 il funzionamento. Questi file possono essere eseguiti in ambienti senza gli strumenti di sviluppo Python installati o indipendentemente dalla versione necessaria di Python. PyOxidizer può anche generare file eseguibili con link statico, non vincolati alle librerie di sistema. Il codice del progetto è scritto in Rust e sotto la licenza MPL (Mozilla Public License) 2.0.
Il progetto si basa su un modulo omonimo per il linguaggio Rust, che consente di integrare un interprete Python all'interno dei programmi Rust per eseguire script Python. PyOxidizer ora va oltre un semplice complemento per Rust e si posiziona come uno strumento accessibile a un pubblico più ampio per la creazione e distribuzione di pacchetti autonomi con Python. Per coloro che non necessitano di distribuire applicazioni come file eseguibili, PyOxidizer offre possibilità di generare librerie compatibili con qualsiasi applicazione per integrare l'interprete Python e il set di estensioni necessarie.
Per gli utenti finali, fornire il progetto come un singolo file eseguibile semplifica notevolmente l'installazione e elimina la necessità di gestire le dipendenze, il che è particolarmente utile per progetti complessi in Python, come i video editor. Per gli sviluppatori di applicazioni, PyOxidizer permette di risparmiare tempo nell'organizzare la distribuzione dell'app senza dover utilizzare diversi strumenti per creare pacchetti per vari sistemi operativi.
L'uso delle build proposte influisce positivamente sulle prestazioni: i file eseguiti in PyOxidizer si avviano più velocemente rispetto all'utilizzo del Python di sistema, grazie all'esclusione dell'importazione e della definizione dei moduli base. In PyOxidizer, i moduli vengono importati dalla memoria; tutti i moduli incorporati vengono caricati in memoria e poi utilizzati senza accesso al disco. Nei test, il tempo di avvio dell'applicazione quando si utilizza PyOxidizer si riduce di circa la metà.
Tra i progetti simili già esistenti, possiamo citare: (decompone il file in una cartella temporanea e importa i moduli da essa), (legato alla piattaforma Windows e richiede la distribuzione di più file), (legato a macOS), (richiede un imballaggio separato delle dipendenze), e (creano un pacchetto in formato zip e richiedono la presenza di Python sul sistema), (compila il codice invece di incorporare l'interpreter), (legato a Windows), (sviluppo proprietario senza spiegazione dei principi di funzionamento).
Attualmente, PyOxidizer ha già implementato le funzionalità principali per la generazione di file eseguibili per Windows, macOS e Linux. Tra le possibilità ancora non disponibili ci sono l'assenza di un ambiente di build standard, l'impossibilità di generare pacchetti nei formati MSI, DMG e deb/rpm, problemi nell'imballaggio di progetti che includono estensioni complesse in linguaggio C, l'assenza di comandi per gestire le consegne («pyoxidizer add», «pyoxidizer analyze» e «pyoxidizer upgrade»), supporto limitato per Terminfo e Readline, mancanza di supporto per versioni diverse da Python 3.7, assenza di supporto per la compressione delle risorse e impossibilità di cross-compilazione.
Fonte: opennet.ru
