2011-08-25 45 views
2

所以,我有一個程序,我在python 2.6中,它運行正常的python,並通過py2exe v0.6.9進入exe文件時運行良好。我用signtool簽名,沒有改變任何東西,它停止工作。輸出py2exe exe將不會運行時只有簽名:ImportError

當我運行簽名的exe文件時,我從腳本的第1行收到一個「ImportError:No module named os」。我做了一些挖掘,發現這個:http://osdir.com/ml/python.py2exe/2008-04/msg00031.html,這似乎是我的問題的一個非常接近的描述。我手動將從py2exe網站鏈接到我的build_exe.py文件,雖然我運行py2exe 0.6.9而不是0.6.6,所以我試圖考慮到這一點。仍然沒有愛。

根據鏈接,這似乎是一個py2exe問題。但我不知道。任何幫助將非常感激。當然,我會回答您對此有任何其他問題。謝謝您的幫助!

+2

解決方法如下(不使用py2exe!)。問題是py2exe需要在可執行文件末尾包含包含模塊的ZIP壓縮文件。 'signtool.exe'在文件末尾增加了一些數據,所以py2exe無法讀取檔案,因此無法導入任何模塊。 – leoluk

+0

這很有道理,謝謝你的解釋。 – nixjdm

回答

2

如果這是一個py2exe的問題,也許給較新的PyInstaller一槍建立你的可執行文件。這是積極的發展,不像py2exe,顯然自2008-11-16以來沒有更新。

+0

PyInstaller似乎很不錯,但我還沒有得到它與該程序一起工作,因爲它使用PySide。還有什麼其他包裝系統可以生產出可以簽署的exes,如果他們知道可以很好地與pyside合作,哪個更好? cx_freeze安全嗎? – nixjdm

+0

應該很容易讓它與PySide一起工作。 – leoluk

+0

@Joe,我用過cx_freeze。使用起來非常簡單,但我不能保證它能與PySide一起使用。你的意思是什麼,安全嗎? – Velociraptors

相關問題