Question

Je me demande s'il est possible de créer un module exécutable à partir d'un script Python. J'ai besoin du maximum de performances et de la flexibilité du script Python, sans avoir besoin de m'exécuter dans l'environnement Python. J'utiliserais ce code pour charger des modules utilisateur à la demande afin de personnaliser mon application.

Était-ce utile?

La solution

  • Il existe pyrex qui compile une source semblable à Python pour modules d'extension python
  • rpython , qui vous permet de compiler python avec certaines restrictions pour différents systèmes d’alimentation tels que C, LLVM, .Net etc.
  • Il existe également un shed-skin qui convertit python en C ++, mais je ne peux pas dire si c'est bon .
  • PyPy implémente un compilateur JIT qui tente d'optimiser l'exécution à l'aide de traduire des morceaux de ce qui est en cours d'exécution au moment de l'exécution en code machine, si vous écrivez pour l'interpréteur PyPy, cela pourrait être un chemin réalisable.
  • Le même auteur qui travaille sur JIT dans PyPy a écrit psyco pour optimiser le python dans l'interpréteur CPython. .

Autres conseils

Vous pouvez utiliser quelque chose comme py2exe pour compiler votre script python dans un fichier exe ou figer pour un fichier binaire linux.

voir: Comment créer une application d'interface graphique multi-plateforme directement exécutable à l'aide de Python?

J'ai eu beaucoup de succès avec Cython , qui repose sur pyrex et étend celui-ci:

  

Cython est un langage qui fait   écrire des extensions C pour le Python   langage aussi simple que Python lui-même.   Cython est basé sur le célèbre   Pyrex, mais supporte plus de pointe   fonctionnalités et optimisations.

     

Le langage Cython est très proche de   le langage Python, mais Cython   prend également en charge l'appel C   fonctions et déclaration des types C sur   variables et attributs de classe. Ce   permet au compilateur de générer très   code C efficace à partir du code Cython.

     

Cela fait de Cython le langage idéal   pour le wrapping des bibliothèques C externes,   et pour les modules C rapides qui accélèrent   l'exécution du code Python.

Je pense que vous pouvez utiliser Jython pour compiler du bytecode Java en python, puis le compiler avec GCJ.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top