Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert python .py file into an executable file for use cross platform?

I've been searching through SO for a while now trying to come up with an answer to this but due to my inexperience with programming I don't understand much of the documentation, nor am I confident enough to experiment too much.

Would anyone be able to describe in slightly simpler terms how I would use programs like Py2exe, PyInstaller, cx_freeze etc.? I just want a way for others (mainly friends) to be able to run my (simple, text only) program without having to download python themselves. If there is an easier way to do this I'd appreciate knowing that too.

Running Vista 32bit, python 2.7

like image 433
Ricochet_Bunny Avatar asked Aug 11 '12 14:08

Ricochet_Bunny


People also ask

Can you convert Python script to exe?

Using pyinstaller you can convert the python file to exe. Type pyinstaller <python-file-name>, this will convert the . py to .exe file with console. Add –no-console keyword after pyinstaller to convert python file to executable without command prompt.

What other tools can be used to convert Python script to Windows executable?

You can just type pip install pyinstaller to install it and pyinstaller -w yourpythonscript.py to compile it to an exe.


2 Answers

There are two distinct ways of freezing python scripts to create executables:

  1. Packing the interpreter and *.pyc files into one exe file-container. Such an approach is used by tools like PyInstaller, Py2exe, cx_freeze.
  2. Creating native code from Python source, usually using a middle step of converting Python-source to C or C++ code. This is done by such tools as Shed-skin and Nuitka. The problem of this aproach is that such tools do not always support all the functionality of Python (e.g. they can have some typing limitations and so on)

The point where you have to start is reading the documentation. Such tools are not just push-and-run style tools, they usually have some configuration that must be implemented (that's the problem of possibly all build systems, and as the project grows, the configuration and number of hooks also grows).

You can start with Py2exe tutorial and 'hello-world' to get acquainted with that how compilation is done. As far as I know it's a simplest way to get your goal.

And the last thing, you can't create cross-platform native executables as their file formats are strongly operating system and hardware dependent.

like image 106
Rostyslav Dzinko Avatar answered Oct 06 '22 18:10

Rostyslav Dzinko


  1. Download py2exe
  2. Download this msvcp90.dll
  3. Copy your FileCode.py AND msvcp90.dll to C:\Python27\
  4. In C:\Python27\ create new text file, then enter this code inside it:
from distutils.core import setup
import py2exe
setup(console=['Avril.py'])
  1. Replace Avril.py with YourFileName.py
  2. Save the file as setup.txt
  3. Open CMD and type this:

cd C:\Python27\
python setup.txt py2exe

  1. Now go to C:\Python27\dist\ and there's your .exe program.

Source: Manvir Singh

like image 41
KiDo Avatar answered Oct 06 '22 19:10

KiDo