Compile PyPy to Exe Compile PyPy to Exe python python

Compile PyPy to Exe


There is no ready-made way or tutorial on how to do create an EXE from a program using the PyPy interpreter, as far as i know. And it's not exactly trivial to get things going, i am afraid.

In principle, there are two ways to consider for using PyPy's translations to get a EXE file, either using the PyPy interpreter or writing your own RPython program (The PyPy interpreter is itself an RPython program, i.e. using a restricted subset of Python).

If you program uses a restricted subset of RPython and no dependencies, you could look into using the translate script in pypy/translator/goal where you'll also find a lot of target*.py files. Take one and modify it for your purposes. You might first want to play with translating python functions starting from here:

http://doc.pypy.org/en/latest/getting-started-dev.html#trying-out-the-translator

If you program is an application and depends on external packages, you should first try to make sure that your program works on pypy at all - not all external libraries are supported. You might then look into modifying the targetpypystandalone script to load your application modules. If in doubt, try to get some help on the pypy-dev mailing list or the #pypy channel on irc.freenode.net.


This is a py2exe solution that might work for you: compile.py

#!/usr/bin/env python# Corey Goldbergfrom distutils.core import setupimport py2exeimport sysif len(sys.argv) == 2:    entry_point = sys.argv[1]    sys.argv.pop()    sys.argv.append('py2exe')    sys.argv.append('-q')else:    print 'usage: compile.py <python_script>\n'    raw_input('press ENTER to exit...')    sys.exit(1)opts = {    'py2exe': {        'compressed': 1,        'optimize': 2,        'bundle_files': 1    }}setup(console=[entry_point], options=opts, zipfile=None)