PyOxidizer un utilitaire pour empaqueter des projets Python dans des fichiers exécutables

PyOxydant

Il y a quelques jours les développeurs ont présenté la première version de l'utilitaire PyOxidizer, qui est offert comme un utilitaire qui peut être utilisé pour empaqueter un projet Python en tant que fichier exécutable séparé, y compris l'interpréteur Python et toutes les bibliothèques et ressources nécessaires.

Ces fichiers peuvent être exécutés dans des environnements sans la boîte à outils Python installée ou quelle que soit la disponibilité de la version requise de Python.

PyOxidizer peut également générer des exécutables liés statiquement qui ne sont pas associés aux bibliothèques système. Le code du projet est écrit dans le langage Rust et est distribué sous MPL (Mozilla Public License) 2.0.

À propos de PyOxidizer?

Le projet est basé sur le module du même nom pour le langage Rust, qui permet d'incorporer un interpréteur Python dans les programmes Rust pour exécuter des scripts Python dessus.

PyOxydant Il est maintenant allé au-delà du plugin pour Rust et se positionne comme un outil disponible pour un public plus large pour créer et distribuer des packages Python autonomes.

PyOxidizer un utilitaire qui vise à résoudre le problème de la distribution des applications Python.

Pour ceux qui n'ont pas besoin de distribuer des applications sous la forme d'un fichier exécutable, PyOxidizer offre la possibilité de générer des bibliothèques appropriées à lier avec n'importe quelle application pour y intégrer l'interpréteur Python et l'ensemble nécessaire d'extensions.

La distribution d'applications Python est généralement considérée comme un problème non résolu, car Russel Keith-Magee a identifié la distribution de code comme une menace existentielle pour la longévité, pour Python. Dans ses mots, Python n'a jamais eu d'historique cohérent sur la façon dont je donne mon code à quelqu'un d'autre, surtout si cette autre personne n'est pas un développeur et veut simplement utiliser mon application.

Pour les utilisateurs finaux, livrer un projet sous la forme d'un fichier exécutable unique Cela simplifie considérablement l'installation et élimine le travail de sélection des dépendances, ce qui est important, par exemple, pour les projets Python complexes tels que les éditeurs vidéo.

Alors que d'un autre côté Pour les développeurs d'applications, PyOxidizer leur permet de gagner du temps en organisant la livraison d'une application sans avoir à utiliser différents outils pour créer des packages pour différents systèmes d'exploitation.

Comment fonctionne PyOxidizer?

Utilisation des versions proposées il a également un effet positif sur les performances: Les fichiers générés dans PyOxidizer s'exécutent plus rapidement que l'utilisation du système Python en supprimant les importations et en définissant des modules de base.

Dans PyOxidizer, les modules sont importés de la mémoire (Tous les modules intégrés sont immédiatement chargés en mémoire puis utilisés sans accès au disque). Lors des tests, le temps de démarrage de l'application avec PyOxidizer est divisé par deux environ.

A partir de projets existants similaires, il est possible d'observer: PyInstaller (décompresse le fichier dans un répertoire temporaire et en importe les modules).

  • Py2exe (lié à la plate-forme Windows et nécessite une distribution de fichiers multiples), py2app (lié à macOS)
  • Cx-freeze (nécessite un emballage de dépendances séparé), Shiv et PEX (forment un package zip et nécessitent Python sur le système)
  • Nuitka (compile le code, pas l'interpréteur embarqué), pynsist (lié à Windows), PyRun (développement propriétaire sans explication des principes de fonctionnement).

Au stade actuel de développement, PyOxidizer a déjà implémenté la fonctionnalité principale pour générer des fichiers exécutables pour Windows, macOS et Linux.

Parmi les capacités de grande envergure notées l'absence d'un environnement de compilation standard, l'incapacité de générer un package au format MSI, DMG et deb / rpm, avec des problèmes de packaging de projet impliquant des extensions complexes du langage C.

Alors que l'absence d'instructions pour supporter la version ("pyoxidizer add", "pyoxidizer analy" et "pyoxidizer upgrade") et un support limité pour Terminfo et Readline, le manque de support pour les versions autres que Python 3.7, le manque de support pour la compression des ressources, incapacité à effectuer une compilation croisée.

source: https://pyoxidizer.readthedocs.io


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.