2016-04-28 80 views
0

我用pyinstaller編譯了一個腳本,它編譯得很好,但是當我運行該程序時,在控制檯窗口中出現以下錯誤。使用pyinstaller DLL加載失敗編譯的腳本

ImportError: DLL load failed: The specified module could not be found. 

我想導入Crypto,當我得到這個錯誤。爲什麼會發生這種情況,我該如何解決?

+0

可能重複的[Pyinstaller&Pycrypto](http://stackoverflow.com/questions/23233222/pyinstaller-pycrypto) – salomonderossi

回答

0

根據the pyinstaller manual

您可以驗證隱藏的進口是通過使用Python的詳細進口標誌的問題。如果導入消息顯示「module not found」,但warnproject.txt文件沒有「no module named ...」消息,則說明該問題是隱藏導入。

隱藏的導入通過在分析時鉤住模塊(執行隱藏導入的模塊)來處理。具體步驟如下:

  1. 創建一個名爲hook-module.py文件(其中模塊是完全合格的Python的名稱,例如,hook-xml.dom.py)和地方放置。記住這個地方作爲你的私人掛鉤目錄。

  2. 在.spec文件中,將您的私有鉤子目錄作爲hookspath參數傳遞給Analysis,以便搜索。例如:

    一個=分析([ 'myscript.py'],hookspath = '/我/ PRIV /鉤') 在大多數情況下,鉤子模塊將只有一個行:

    hiddenimports = [」 module1','module2'] 當Analysis發現該文件時,它將按照模塊明確導入module1和module2的方式進行。

This question似乎有關,答案也可能是對您有用。

最後,this report似乎也包含類似的問題。用戶貌似能夠通過更新到pyinstaller 2.1來修復它,所以如果你還沒有嘗試過,那麼你可能需要嘗試一下。

+0

我試過這個,但我仍然不知道隱藏的進口是什麼,我需要。 – cdw100100