mirror of
https://github.com/kennethreitz/python-guide.git
synced 2026-06-05 06:46:17 +00:00
Merge pull request #187 from iElectric/master
Add comparison table and py2exe notes on freezing topic
This commit is contained in:
+74
-16
@@ -8,42 +8,100 @@ Many applications you use every day do this:
|
||||
|
||||
- Dropbox
|
||||
- BitTorrent
|
||||
-
|
||||
|
||||
- ...
|
||||
|
||||
.. todo:: Fill in "Freezing Your Code" stub
|
||||
|
||||
Windows
|
||||
:::::::
|
||||
|
||||
|
||||
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/
|
||||
|
||||
2. Write setup.py (`List of configuration options <http://www.py2exe.org/index.cgi/ListOfOptions>`_)::
|
||||
|
||||
from distutils.core import setup
|
||||
import py2exe
|
||||
|
||||
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
|
||||
-----------
|
||||
~~~~~~~~~~~
|
||||
|
||||
Reference in New Issue
Block a user