2012-03-06 48 views
2

可能重複:
Outputed py2exe exe won't run only when signed: ImportError對cxfreeze windows可執行文件進行數字簽名?

我正在使用Python 3.2的程序。我使用cxfreeze將腳本轉換爲可執行文件。無需更改即可運行凍結的可執行文件。當我嘗試使用signtool.exe來簽署可執行文件時,exe會提高ImportError。有沒有數字簽名凍結的python3可執行文件的方法?

謝謝!

+0

@STATUS_ACCESS_DENIED上述鏈接中的問題(和提供的解決方案)與python 2.x相關。 py2exe和pyinstaller不適用於python 3.x.謝謝 – simha 2012-03-06 17:48:29

+0

他們似乎仍然以同樣的方式工作。如果您通讀鏈接主題,您會明白爲什麼這種方法無效。這是因爲'signtool'基本上破壞了存根需要運行Python代碼的覆蓋/有效載荷。 – 0xC0000022L 2012-03-06 17:55:31

+0

據我所知,問題是相同的,但不是解決方案,因爲[pyinstaller](http://stackoverflow.com/a/7199367/538850)解決方案將無法與python3。所以我認爲爲python3發佈一個單獨的問題是適當的。無論如何,感謝您的鏈接和解釋。 – simha 2012-03-06 18:36:04

回答

1

here

有用於生產的可執行文件,以及三個不同的選項。 第一個選項是cx_Freeze的早期版本 中唯一可用的選項,即將zip文件附加到 可執行文件本身。第二個選項是創建一個專用zip文件 ,其名稱與可執行文件相同,但擴展名爲.zip。 最終選項是默認創建一個名爲 library.zip的zip文件,並將所有模塊放置在此zip文件中。

這很明顯,爲什麼這會失敗,當閱讀(在我看來重複)話題here。不同的語言版本,是的。不同的工具,是的。不同的方法,不!從錯誤中可以明顯看出,您正在使用第一個選項,而signtool會干擾有效負載。

+0

使用第三個選項解決了這個問題。再次感謝。 – simha 2012-03-06 21:08:00

0

據我所知,signtool.exe只是在那裏簽署基於.NET的應用程序。由於您的應用程序不是基於.NET的,因此會發生此故障(異常)。

+2

_signtool_不僅可以對.NET二進制文件進行簽名。您的困惑可能來自它隨.NET SDK一起提供的事實,但它也隨Windows SDK一起提供。 – pezcode 2012-03-06 16:24:36

+0

...和WDK。 – 0xC0000022L 2012-03-06 17:21:32

+0

對不起這傢伙!你們倆都是對的。感謝這正確的。 :-) – mox 2012-03-06 19:38:16

相關問題