py2exe 找不到模块

4 投票
2 回答
1866 浏览
提问于 2025-04-17 01:49

我有一个用Python写的项目,这个项目里面有很多模块和文件夹。要运行的主程序是test_main.py:

    import PSI_Core.benchManager as bm
    import shutil
    import os

    manager = bm.benchManager();

我严格按照py2exe的步骤来为这个项目创建一个exe文件。但是一旦exe文件创建出来并运行,就出现了错误:

    ImportError: No module named PSI_Core.benchManager

有没有人有使用py2exe的经验?成功过吗?

2 个回答

1

我对py2exe有一些经验,但大部分时间我都在找不到合适的解决办法,只能使用一些变通的方法和补丁。不过,你的问题很可能相对简单。如果py2exe找不到某个模块,我建议你用设置脚本手动把这个模块加进去。下面是一个应该是什么样子的例子:

setup(
    options = {'py2exe': {'includes': "PSI_Core"}},
    windows = [{'script': "test_main.py"}]
)
3

我知道这不是直接的答案,但我花了半个小时试图让py2exe工作,结果放弃了,转而尝试了cx_Freeze,效果非常好:

http://cx-freeze.sourceforge.net/cx_Freeze.html

不到五分钟,我就得到了一个闪亮的可执行文件在等着我 :-)

撰写回答