我想讓我的應用程序使用xml.sax.parse讀取文檔。事情工作正常,但當我將可執行文件移動到Windows服務器2008年機器的事情發生故障。我收到SAXReaderNotAvailable異常,並顯示「找不到解析器」消息。如何在使用PyInstaller創建的可執行文件上使用xml.sax模塊?
我使用生成可執行的設置是:
- 64位Windows 7
- 的Python 2.7.2 32位
- PyInstaller 1.5.1
我想讓我的應用程序使用xml.sax.parse讀取文檔。事情工作正常,但當我將可執行文件移動到Windows服務器2008年機器的事情發生故障。我收到SAXReaderNotAvailable異常,並顯示「找不到解析器」消息。如何在使用PyInstaller創建的可執行文件上使用xml.sax模塊?
我使用生成可執行的設置是:
可執行竟然是罰款。由於某種原因或其他原因,PATH中所需的dll版本有誤,並且可執行文件最終嘗試使用這些版本。
SAX讀者似乎是動態導入的,因此靜態分析無法檢測到它們,並且它們不能與應用程序一起嵌入。
要解決此問題,必須明確強制PyInstaller導入那些hidden modules。
嘗試將此添加到您的.spec(感謝伶盜龍屬)文件:
hiddenimports = ['xml.sax.drivers', 'xml.sax.drivers2']
我在使用PyInstaller之前沒有遇到過setup.py。我一直在尋找沒有運氣的文件。我試圖將這些添加到spec文件,沒有運氣。我也檢查了hook-xml.sax.py文件並在那裏添加了這些文件,並沒有幫助。 –
已下載svn trunk。找到setup.py,並添加這些。現在,即使在我的機器上,可執行文件也不會運行,所以我猜這是一些進步。 –
@Matti Uusitalo:移動(向前或向後)是一種進步....你可以發表你的問題中回溯/錯誤的細節嗎? –