【发布时间】:2012-04-03 08:36:21
【问题描述】:
我正在尝试冻结我的 Python3.2 项目,并在运行生成的可执行文件后出现以下错误:
调用 format_exception 时引发异常。 “str”对象没有属性“__cause__”。 原始异常:无法导入名称格式。
该项目具有三个带有 __init__.py 文件的内部包/模块。它使用外部包:sqlite3、PyQt4、matplotlib、numpy、scipy。
这是我的 setup.py:
from cx_Freeze import setup, Executable
includes = ['re', 'PyQt4', 'os', 'scipy', 'csv', 'sqlite3', 'itertools', 'numpy', 'sys', 'matplotlib']
excludes = []
packages = []
path = []
GUI2Exe_Target = Executable(
# what to build
script = "xshape_report.py",
#initScript = None,
base = 'Win32GUI',
#targetDir = r"dist",
#targetName = "xshape_report.exe",
#compress = True,
#copyDependentFiles = True,
#appendScriptToExe = False,
#appendScriptToLibrary = False,
icon = None
)
setup(
version = "0.1",
description = "Reporting system",
author = "Katya",
name = "Xshape report",
options = {"build_exe": {"includes": includes,
"excludes": excludes,
"packages": packages,
"path": path
}
},
executables = [GUI2Exe_Target]
)
如果我离开,同样的错误包括空。 可能是什么原因?
【问题讨论】:
-
您的代码是否也会在 python 中引发异常,还是仅在冻结时引发异常?这是一个奇怪的例外,因为
format是一个函数,而不是一个模块,所以我不确定它为什么要尝试导入格式。 -
仅在冻结时。我在 cx_freeze 邮件列表上得到了以下答案:“'无法导入名称格式'位是您的应用程序有问题。可能有一些模块没有检测到它需要复制。它应该显示更多关于哪里的详细信息错误发生,但是cx_Freeze中有一个错误导致“'str' object has no attribute 'cause'”消息。如果您想测试cx_Freeze的开发版本,应该修复,因此您将获得适当的回溯。”
-
你能贴出完整代码的链接吗?
标签: python python-3.x executable cx-freeze