Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compile PyPy to Exe

I know how to compile CPython file to exe using cx_freeze but is it possible to compile a simple program using PyPy to Exe ?

like image 797
Nuncjo Avatar asked May 06 '12 13:05

Nuncjo


People also ask

What does PyPy compile to?

PyPy compiles Python code, but it isn't a compiler for Python code. Because of the way PyPy performs its optimizations and the inherent dynamism of Python, there's no way to emit the resulting JITted code as a standalone binary and re-use it. Each program has to be compiled for each run.

How do I use auto py to exe?

First visit the GitHub page for this library and download the code using the download ZIP option as shown in the image below. Next extract the file, locate the python file called run.py and execute it. This should open up the interface for auto-py-to-exe.

Can Python be compiled to EXE?

Yes, it is possible to compile Python scripts into standalone executables. PyInstaller can be used to convert Python programs into stand-alone executables, under Windows, Linux, Mac OS X, FreeBSD, Solaris, and AIX. It is one of the recommended converters.

How do I run a program with PyPy?

For Python 2.7, it's just called pypy . For CPython, if you would like to run Python 3 from the terminal, you simply enter the command python3 . To run PyPy, simply issue the command pypy3 . Entering the pypy3 command in the terminal might return the Command 'pypy3' not found message, as shown in the next figure.


1 Answers

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.

like image 101
hpk42 Avatar answered Sep 17 '22 13:09

hpk42