4 An alternative to shipping your code is freezing it — shipping it as an
5 executable with a bundled Python interpreter.
7 Many applications you use every day do this:
13 .. todo:: Fill in "Freezing Your Code" stub
20 Solutions and platforms/features supported:
22 =========== ======= ===== ==== ======== ======= ============= ============== ==== =====================
23 Solution Windows Linux OS X Python 3 Licence One-file mode Zipfile import Eggs pkg_resources support
24 =========== ======= ===== ==== ======== ======= ============= ============== ==== =====================
25 bbFreeze yes yes yes no MIT no yes yes yes
26 py2exe yes no no no MIT yes yes no no
27 pyInstaller yes yes yes no GPL yes no yes no
28 cx_Freeze yes yes yes yes PSF no yes yes no
29 =========== ======= ===== ==== ======== ======= ============= ============== ==== =====================
31 .. todo:: Add other solutions: py2app
34 Freezing Python code on Linux into a Windows executable was only once
35 supported in PyInstaller, `but later dropped
36 <http://stackoverflow.com/questions/2950971/cross-compiling-a-python-script-on-linux-into-a-windows-executable#comment11890276_2951046>`_.
39 All solutions need MS Visual C++ dll to be installed on target machine.
40 Only Pyinstaller makes self-executable exe that bundles the dll when
41 passing ``--onefile`` to `Configure.py`.
49 Prerequisite is to install :ref:`Python, Distribute and pywin32 dependency on Windows <install-windows>`.
51 .. todo:: Write steps for most basic .exe
56 Prerequisite is to install :ref:`Python on Windows <install-windows>`.
58 1. Download and install http://sourceforge.net/projects/py2exe/files/py2exe/
60 2. Write setup.py (`List of configuration options <http://www.py2exe.org/index.cgi/ListOfOptions>`_)::
62 from distutils.core import setup
66 windows=[{'script': 'foobar.py'}],
69 3. (Optionally) `include icon <http://www.py2exe.org/index.cgi/CustomIcons>`_
71 4. (Optionally) `one-file mode <http://stackoverflow.com/questions/112698/py2exe-generate-single-executable-file#113014>`_
73 5. Generate `.exe` into `dist` directory::
75 $ python setup.py py2exe
77 6. Provide the Microsoft Visual C runtime DLL. Two options: `globally install dll on target machine <https://www.microsoft.com/en-us/download/details.aspx?id=29>`_ or `distribute dll aloneside with .exe <http://www.py2exe.org/index.cgi/Tutorial#Step52>`_.
82 Prerequisite is to have installed :ref:`Python, Distribute and pywin32 dependency on Windows <install-windows>`.
84 - `Most basic tutorial <http://bojan-komazec.blogspot.com/2011/08/how-to-create-windows-executable-from.html>`_
85 - `Manual <http://www.pyinstaller.org/export/d3398dd79b68901ae1edd761f3fe0f4ff19cfb1a/project/doc/Manual.html?format=raw>`_