关于cx_freeze和Python 3.2.2的问题?
我正在尝试用cx_freeze 4.2.3把一个Python 3.2.2的脚本打包。这个脚本使用了PyQt4,我不确定这是否会导致问题。在构建过程中,Python崩溃了。以下是命令行的输出:
C:\Python32\New Folder>python setup.py build
正在运行构建
正在运行构建可执行文件
复制 C:\Python32\Lib\site-packages\cx_Freeze\bases\Win32GUI.exe -> build\exe.win32-3.2\app.exe
复制 C:\WINDOWS\system32\python32.dll -> build\exe.win32-3.2\python32.dll
在这个时候,Python在Windows上崩溃了,并弹出了“发送错误报告”的对话框:
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]
)
你们觉得我哪里出错了?
补充:经过一些实验,我发现我尝试使用的图标导致了问题。如果不设置图标,它就能正常构建。
1 个回答
3
看起来,cx_freeze 需要图标使用 .ico 格式。如果你尝试用 .png 格式的图标,构建过程会出错。而且,仅仅把文件的扩展名从 .png 改成 .ico 是不行的,你必须把文件真正转换成 ico 格式。
这对某些人来说可能很明显,但在线文档并没有详细说明图标所需的格式。