Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 70 additions & 12 deletions docs/shipping/freezing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,42 +8,100 @@ Many applications you use every day do this:

- Dropbox
- BitTorrent
-

- ...

.. todo:: Fill in "Freezing Your Code" stub



Comparison
----------

Solutions and platforms/features supported:

=========== ======= ===== ==== ======== ======= ============= ============== ==== =====================
Solution Windows Linux OS X Python 3 Licence One-file mode Zipfile import Eggs pkg_resources support
=========== ======= ===== ==== ======== ======= ============= ============== ==== =====================
bbFreeze yes yes yes no MIT no yes yes yes
py2exe yes no no no MIT yes yes no no
pyInstaller yes yes yes no GPL yes no yes no
cx_Freeze yes yes yes yes PSF no yes yes no
=========== ======= ===== ==== ======== ======= ============= ============== ==== =====================

.. todo:: Add other solutions: py2app

.. note::
Freezing Python code on Linux into a Windows executable was only once
supported in PyInstaller, `but later dropped
<http://stackoverflow.com/questions/2950971/cross-compiling-a-python-script-on-linux-into-a-windows-executable#comment11890276_2951046>`_.

.. note::
All solutions need MS Visual C++ dll to be installed on target machine.
Only Pyinstaller makes self-executable exe that bundles the dll when
passing ``--onefile`` to `Configure.py`.

Windows
:::::::
-------

bbFreeze
~~~~~~~~

Prerequisite is to install :ref:`Python, Distribute and pywin32 dependency on Windows <install-windows>`.

.. todo:: Write steps for most basic .exe

py2exe
------
~~~~~~

Prerequisite is to install :ref:`Python on Windows <install-windows>`.

1. Download and install http://sourceforge.net/projects/py2exe/files/py2exe/

OSX
:::
2. Write setup.py (`List of configuration options <http://www.py2exe.org/index.cgi/ListOfOptions>`_)::

from distutils.core import setup
import py2exe

py2app
------
setup(
windows=[{'script': 'foobar.py'}],
)

3. (Optionally) `include icon <http://www.py2exe.org/index.cgi/CustomIcons>`_

4. (Optionally) `one-file mode <http://stackoverflow.com/questions/112698/py2exe-generate-single-executable-file#113014>`_

5. Generate `.exe` into `dist` directory::

$ python setup.py py2exe

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>`_.

PyInstaller
-----------
~~~~~~~~~~~

Prerequisite is to have installed :ref:`Python, Distribute and pywin32 dependency on Windows <install-windows>`.

- `Most basic tutorial <http://bojan-komazec.blogspot.com/2011/08/how-to-create-windows-executable-from.html>`_
- `Manual <http://www.pyinstaller.org/export/d3398dd79b68901ae1edd761f3fe0f4ff19cfb1a/project/doc/Manual.html?format=raw>`_


OSX
---


py2app
~~~~~~

PyInstaller
~~~~~~~~~~~


Linux
:::::
-----


bbFreeze
--------
~~~~~~~~

PyInstaller
-----------
~~~~~~~~~~~