проблемы с cx_freeze и python 3.2.2? - PullRequest
3 голосов
/ 31 января 2012

Я пытаюсь заморозить скрипт на python 3.2.2 с помощью cx_freeze 4.2.3. PyQt4 используется исходным скриптом, я не уверен, что это потенциальный источник проблемы. Сбой Python во время процесса сборки. Вот вывод командной строки:

C: \ Python32 \ New Folder> python setup.py build

работает сборка

работает build_exe

копирование C: \ Python32 \ Lib \ site-packages \ cx_Freeze \ base \ Win32GUI.exe -> build \ exe.win32-3.2 \ app.exe

копирование C: \ WINDOWS \ system32 \ python32.dll -> build \ exe.win32-3.2 \ python32.dll

В этот момент сам Python падает в Windows и выдает диалоговое окно MS «Отправить отчет об ошибке»:

python.exe столкнулся с проблемой и должен быть закрыт. Мы сожалеем за неудобства.

Вот мой файл setup.py:

from cx_Freeze import setup, Executable

GUI2Exe_Target_1 = Executable(
    script = "script.pyw",
    initScript = None,
    base = 'Win32GUI',
    targetName = "app.exe",
    compress = True,
    copyDependentFiles = True,
    appendScriptToExe = False,
    appendScriptToLibrary = False,
    icon = "icon.png"
    ) 
excludes = ["pywin", "tcl", "pywin.debugger", "pywin.debugger.dbgcon",
        "pywin.dialogs", "pywin.dialogs.list", "win32com.server",
        "email"] 
includes = ["PyQt4.QtCore","PyQt4.QtGui","win32gui","win32com","win32api","html.parser","sys","threading","datetime","time","urllib.request","re","queue","os"] 
packages = [] 
path = [] 
setup(
    version = "1.0",
    description = "myapp",
    author = "me",
    author_email = "email@email.com",
    name = "app",
    options = {"build_exe": {"includes": includes,
                             "excludes": excludes,
                             "packages": packages,
                             "path": path
                            }
               },
    executables = [GUI2Exe_Target_1]
    )

Есть идеи, где я иду не так?

edit: После некоторых экспериментов появляется значок, который я пытаюсь использовать, вызывает проблемы. Он будет построен, если я пропущу настройку иконки.

1 Ответ

3 голосов
/ 01 февраля 2012

Очевидно, cx_freeze хочет, чтобы значки были в формате .ico. Если вы попытаетесь использовать .png для иконки, процесс сборки завершится сбоем. Кроме того, простое переименование расширения файла из .png в .ico не работает, вы фактически конвертируете файл в ico.

Это могло бы быть очевидным для некоторых людей, но онлайн-документы не вдавались в подробности о необходимых форматах значков.

...