【问题标题】:cx_Freeze error: 'str' object has no attribute '__cause__'cx_Freeze 错误:“str”对象没有属性“__cause__”
【发布时间】: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


【解决方案1】:

从邮件列表中复制我的答案以帮助其他搜索此内容的人:

“无法导入名称格式”位是您的应用程序存在的问题。可能有一些模块没有检测到它需要复制。

它应该显示有关错误发生位置的更多详细信息,但 cx_Freeze 中有一个错误导致'str' object has no attribute '__cause__' 消息。这是在development version 中修复的,因此如果您使用它,您将获得正确的回溯。希望我们能尽快发布新版本。

对于未来的人们:cx_Freeze 4.2.3 存在这个问题,我猜修复的版本将是 4.3.0。如果您在更高版本中遇到此问题 (no attribute '__cause__'),请确保已为它提交了错误。

【讨论】:

  • 谢谢!问题解决了,最新的开发版本给出了有意义的跟踪,我可以调整我的 setup.py 以便将所有需要的模块复制到构建中 - 它并不总是自动完成。
猜你喜欢
  • 2016-04-07
  • 2021-07-19
  • 1970-01-01
  • 2018-02-08
  • 2018-03-15
  • 2019-03-30
  • 2016-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多