Sortie de PyOxidizer pour empaqueter des projets Python en fichiers exécutables autonomes

PrĂ©sentĂ© premiĂšre version de l'outil PyOxidizer, qui permet d'emballer un projet Python sous la forme d'un fichier exĂ©cutable autonome, incluant un interprĂ©teur Python ainsi que toutes les bibliothĂšques et ressources nĂ©cessaires Ă  son fonctionnement. De tels fichiers peuvent ĂȘtre exĂ©cutĂ©s dans des environnements sans l'outil Python installĂ© ou indĂ©pendamment de la version Python requise. PyOxidizer peut Ă©galement gĂ©nĂ©rer des fichiers exĂ©cutables statiquement liĂ©s, qui ne dĂ©pendant pas des bibliothĂšques systĂšme. Le code du projet est Ă©crit en Rust et est distribuĂ© sous licence MPL (Mozilla Public License) 2.0.

Le projet est basé sur un module éponyme pour le langage Rust, permettant d'intégrer un interpréteur Python dans des programmes Rust pour exécuter des scripts Python. PyOxidizer dépasse désormais le cadre d'un complément pour Rust et se positionne comme un outil accessible à un public plus large pour créer et distribuer des paquets autonomes avec Python. Pour ceux qui n'ont pas besoin de distribuer des applications sous forme de fichier exécutable, PyOxidizer offre des fonctionnalités pour générer des bibliothÚques adaptées à l'intégration d'un interpréteur Python et d'un ensemble d'extensions requises.

Pour les utilisateurs finaux, la livraison du projet sous la forme d'un fichier exécutable unique simplifie considérablement l'installation et évite le travail de recherche de dépendances, ce qui est particuliÚrement pertinent pour des projets Python complexes comme des éditeurs vidéo. Pour les développeurs d'applications, PyOxidizer leur permet de gagner du temps sur l'organisation de la distribution de l'application, sans avoir à utiliser différents outils pour la création de paquets pour différents systÚmes d'exploitation.

L'utilisation de ces builds a également un impact positif sur les performances - les fichiers générés par PyOxidizer se lancent plus rapidement que ceux utilisant le Python systÚme grùce à l'élimination de l'importation et de la définition des modules de base. Dans PyOxidizer, les modules sont importés depuis la mémoire - tous les modules intégrés sont chargés en mémoire et ensuite utilisés sans appel au disque). Dans les tests, le temps de démarrage d'une application utilisant PyOxidizer est réduit d'environ moitié.

Parmi les projets similaires déjà existants, on peut noter : PyInstaller (qui extrait le fichier dans un répertoire temporaire et importe les modules à partir de celui-ci), py2exe (lié à la plateforme Windows et nécessite la distribution de plusieurs fichiers), py2app (lié à macOS), cx-freeze (nécessite un emballage séparé des dépendances), Shiv et PEX (forme un package au format zip et nécessite la présence de Python sur le systÚme), Nuitka (compile le code au lieu d'intégrer l'interpréteur), pynsist (lié à Windows), PyRun (développement propriétaire sans explication du fonctionnement).

À ce stade de dĂ©veloppement, PyOxidizer dispose dĂ©jĂ  des fonctionnalitĂ©s de base pour gĂ©nĂ©rer des fichiers exĂ©cutables pour Windows, macOS et Linux. Par rapport aux fonctionnalitĂ©s encore non disponibles, on note l'absence d'un environnement de construction standard, l'impossibilitĂ© de gĂ©nĂ©rer des paquets aux formats MSI, DMG et deb/rpm, des problĂšmes d'emballage de projets incluant des extensions complexes en C, l'absence de commandes pour assurer la livraison (‘pyoxidizer add’, ‘pyoxidizer analyze’ et ‘pyoxidizer upgrade’), une prise en charge limitĂ©e de Terminfo et Readline, l'absence de support pour les versions autres que Python 3.7, l'absence de compression des ressources, et l'impossibilitĂ© de cross-compilation.

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster