py2exe生成的可执行文件日志错误

2 投票
1 回答
1415 浏览
提问于 2025-04-17 02:46

Py2exe在构建可执行文件的时候没有出现任何错误。但是当我运行这个可执行文件时,会生成一个日志文件,内容如下:

    Traceback (most recent call last):
       File "ecm2es_gui.py", line 10, in <module>
       File "weblogin.pyo", line 4, in <module>
       File "mechanize\__init__.pyo", line 122, in <module>
       File "mechanize\_mechanize.pyo", line 14, in <module>
       File "mechanize\_html.pyo", line 19, in <module>
       File "mechanize\_form.pyo", line 64, in <module>
    ImportError: No module named inspect

当我从Python Shell、Eclipse或者Geany运行这个程序时,没有任何错误,运行得很好。

我原以为问题出在Mechanize的安装或者其他依赖包上,但现在我觉得这不是问题所在。

有没有什么想法?谢谢! - Brad

更新... 这是我的setup.py文件:

    from distutils.core import setup
    import py2exe

    import sys; sys.argv.append('py2exe')

    includes = []
    excludes = ['_ssl', 'pdb', 'unittest', 'inspect',
                'pyreadline', 'difflib', 'doctest', 'locale',
                'optparse', 'pickle', 'calendar', '_gtkagg', 
                '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
                'pywin.debugger.dbgcon', 'pywin.dialogs']
    packages = []
    dll_excludes = []

    setup(
        options = {"py2exe": {"compressed": 1,
                              "optimize": 2,
                              "bundle_files": 3,
                              "includes": includes,
                              "excludes": excludes,
                              "packages": packages,
                              "dll_excludes": dll_excludes,
                              "dist_dir": "dist",
                              "xref": False,
                              "skip_archive": False,
                              "ascii": False,
                              "custom_boot_script": '',
                             }
                  },
    #    zipfile = None,
        name='EnerSave Uploader',
        version='0.5',
        description='Upload ECM-1240 Data to EnerSave',
        author='Brad Norman',
        windows=[{"script":"ecm2es_gui.py", 
                  "icon_resources": [(1, "favicon.ico")]}
                ]
        )

1 个回答

1

错误信息是

ImportError: No module named inspect

在你的设置脚本中,你把inspect放在了排除列表里。把它从排除列表中去掉,py2exe就会把它和你的可执行文件一起打包,这样mechanize就可以使用它了。

撰写回答