I wonder if it is possible to create an executable module from a Python script. I need to have the most performance and the flexibility of Python script, without needing to run in the Python environment. I would use this code to load on demand user modules to customize my application.
You can use something like py2exe to compile your python script into an exe, or Freeze for a linux binary.
see: http://stackoverflow.com/questions/2933/an-executable-python-app#2937
- There's pyrex that compiles python like source to python extension modules
- rpython which allows you to compile python with some restrictions to various backends like C, LLVM, .Net etc.
- There's also shed-skin which translates python to C++, but I can't say if it's any good.
- PyPy implements a JIT compiler which attempts to optimize runtime by translating pieces of what's running at runtime to machine code, if you write for the PyPy interpreter that might be a feasible path.
- The same author that is working on JIT in PyPy wrote psyco previously which optimizes python in the CPython interpreter.
I think you can use jython to compile python to Java bytecode, and then compile that with GCJ.
I've had a lot of success using Cython, which is based on and extends pyrex:
Cython is a language that makes writing C extensions for the Python language as easy as Python itself. Cython is based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.
The Cython language is very close to the Python language, but Cython additionally supports calling C functions and declaring C types on variables and class attributes. This allows the compiler to generate very efficient C code from Cython code.
This makes Cython the ideal language for wrapping for external C libraries, and for fast C modules that speed up the execution of Python code.