【发布时间】:2011-08-25 23:36:35
【问题描述】:
所以,我有一个我在 python 2.6 中制作的程序,它像普通的 python 一样运行良好,并且通过 py2exe v0.6.9 制作成 exe 时运行良好。我使用 signtool 对其进行签名,没有进行任何其他更改,它停止工作。
当我运行签名的 exe 时,我从脚本的第 1 行收到“ImportError: No module named os”。我做了一些挖掘,发现了这个:http://osdir.com/ml/python.py2exe/2008-04/msg00031.html,这似乎是对我的问题的非常接近的描述。尽管我运行的是 py2exe 0.6.9 而不是 0.6.6,但我手动将从 py2exe 网站链接到的补丁应用到我的 build_exe.py 文件中,因此我尝试将其考虑在内。还是没有爱。
根据链接,这似乎是一个 py2exe 问题。不过我不知道。任何帮助将非常感激。当然,我会回答您对此提出的任何其他问题。感谢您的帮助!
【问题讨论】:
-
解决方法如下(不使用py2exe!)。问题是 py2exe 需要一个 ZIP 存档,其中包含可执行文件末尾的包含模块。
signtool.exe在文件末尾添加了更多数据,因此 py2exe 无法读取存档,因此无法导入任何模块。 -
这很有道理,感谢您的解释。
标签: python code-signing py2exe signtool