可能重复:
Outputed py2exe exe won't run only when signed: ImportError对cxfreeze windows可执行文件进行数字签名?
我正在使用Python 3.2的程序。我使用cxfreeze将脚本转换为可执行文件。无需更改即可运行冻结的可执行文件。当我尝试使用signtool.exe
来签署可执行文件时,exe会提高ImportError
。有没有数字签名冻结的python3可执行文件的方法?
谢谢!
可能重复:
Outputed py2exe exe won't run only when signed: ImportError对cxfreeze windows可执行文件进行数字签名?
我正在使用Python 3.2的程序。我使用cxfreeze将脚本转换为可执行文件。无需更改即可运行冻结的可执行文件。当我尝试使用signtool.exe
来签署可执行文件时,exe会提高ImportError
。有没有数字签名冻结的python3可执行文件的方法?
谢谢!
从here:
有用于生产的可执行文件,以及三个不同的选项。 第一个选项是cx_Freeze的早期版本 中唯一可用的选项,即将zip文件附加到 可执行文件本身。第二个选项是创建一个专用zip文件 ,其名称与可执行文件相同,但扩展名为.zip。 最终选项是默认创建一个名为 library.zip的zip文件,并将所有模块放置在此zip文件中。
这很明显,为什么这会失败,当阅读(在我看来重复)话题here。不同的语言版本,是的。不同的工具,是的。不同的方法,不!从错误中可以明显看出,您正在使用第一个选项,而signtool会干扰有效负载。
使用第三个选项解决了这个问题。再次感谢。 – simha 2012-03-06 21:08:00
据我所知,signtool.exe只是在那里签署基于.NET的应用程序。由于您的应用程序不是基于.NET的,因此会发生此故障(异常)。
_signtool_不仅可以对.NET二进制文件进行签名。您的困惑可能来自它随.NET SDK一起提供的事实,但它也随Windows SDK一起提供。 – pezcode 2012-03-06 16:24:36
...和WDK。 – 0xC0000022L 2012-03-06 17:21:32
对不起这家伙!你们俩都是对的。感谢这正确的。 :-) – mox 2012-03-06 19:38:16
@STATUS_ACCESS_DENIED上述链接中的问题(和提供的解决方案)与python 2.x相关。 py2exe和pyinstaller不适用于python 3.x.谢谢 – simha 2012-03-06 17:48:29
他们似乎仍然以同样的方式工作。如果您通读链接主题,您会明白为什么这种方法无效。这是因为'signtool'基本上破坏了存根需要运行Python代码的覆盖/有效载荷。 – 0xC0000022L 2012-03-06 17:55:31
据我所知,问题是相同的,但不是解决方案,因为[pyinstaller](http://stackoverflow.com/a/7199367/538850)解决方案将无法与python3。所以我认为为python3发布一个单独的问题是适当的。无论如何,感谢您的链接和解释。 – simha 2012-03-06 18:36:04