cx_Freeze错误:'str'对象没有属性'__cause__'

时间:2012-04-03 08:36:22

标签: python python-3.x executable cx-freeze

我正在尝试冻结我的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]
    )

如果我离开,同样的错误包括空。 可能是什么原因?

1 个答案:

答案 0 :(得分:2)

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

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

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

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