Skrypty Python do .exe

Witam. Czy istnieje jakieś łatwe w obsłudze narzędzie dla Windows x64, które potrafi wygenerować plik wykonywalny .exe ze skryptu Pythona .py? Dużo się naczytalem o py2exe, ale z tego co wizę instalki są dla systemów 32-bitowych.

Programy 32bitowe (IA32) działają też na 64bitowych (AMD64/EM64T) systemach (zdarzają się wyjątki ale zwykle tylko w specyficznych przypadkach).

PS. Na pierwszej stronie z Google pod hasłem “py2exe” w dziale Download widzę wersje 64bitowe.

Polecam cx_freeze. Dostępna jest również wersja dla Pythona 3. Używam do aplikacji z GUI (PyQt).

Próbowałem z py2exe na pdostawie tutriala (http://www.py2exe.org/index.cgi/Tutorial), ale ani z command line ani z GUI nie dało rady.

CMD wywala:

running install

running build

running install_egg_info

Removing F:\python\Lib\site-packages\UNKNOWN-0.0.0-py2.7.egg-info

Writing F:\python\Lib\site-packages\UNKNOWN-0.0.0-py2.7.egg-info

w IDLE GUI dla kodu:

from distutils.core import setup

import py2exe

setup(console=[“hello.py”])

wywala:

Traceback (most recent call last):

File “F:\python\setup.py”, line 3, in

setup(console=[“hello.py”])

File “F:\python\lib\distutils\core.py”, line 140, in setup

raise SystemExit, gen_usage(dist.script_name) + “\nerror: %s” % msg

SystemExit: usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] …]

or: setup.py --help [cmd1 cmd2 …]

or: setup.py --help-commands

or: setup.py cmd --help

error: no commands supplied

Oczywiście, że nie działa :confused: Pobrałem z tej strony jedyną dostępną instalkę dla Windows, lecz po wykonaniu skryptu:

Error: PyInstaller for Python 2.6+ on Windows needs pywin32.

Please install from http://sourceforge.net/projects/pywin32/

Czy w środowisku Python da się w jakiś łatwy i bezproblematyczny sposób utworzyć exe?

Tak. Przy pomocy cx_freeze.

Przykładowy plik setup.py:

# coding: utf-8


from cx_Freeze import setup, Executable


exe = Executable(script="my_app.pyw",

                 base="Win32GUI",

                 icon="my_app.ico",

                 compress=True,

                 appendScriptToExe=True,

                 appendScriptToLibrary=False,

                 copyDependentFiles=True)


setup(name="MyApp",

      version="1.0",

      description="This is my first app",

      author="dp",

      author_email="dp@example.com",

      executables=[exe],

      options={'build_exe': {'excludes': ['tcl', 'ttk', 'tkinter'],

                             'packages': [],

                             'include_files': ['license.txt'],

                             'compressed': True,

                             'create_shared_zip': False}})