2009-11-29 34 views
2

我正在Python中創建一箇中等級別的應用程序。 現在一切正常,我試圖用py2exe製作一個windows可執行文件。 可執行文件創建正常,但是當我嘗試運行它時,會失敗,並顯示以下錯誤。Python py2exe - 內存加載錯誤

File "zipextimporter.pyo", line 82, in load_module 
    File "ffhandler.pyo", line 33, in ? 
    File "zipextimporter.pyo", line 82, in load_module 
    File "pyAA\__init__.pyo", line 1, in ? 
    File "zipextimporter.pyo", line 82, in load_module 
    File "pyAA\AA.pyo", line 8, in ? 
    File "zipextimporter.pyo", line 82, in load_module 
    File "pyAA\pyAAc.pyo", line 5, in ? 
    File "zipextimporter.pyo", line 98, in load_module 
ImportError: MemoryLoadLibrary failed loading pyAA\_pyAAc.pyd 

我在這個應用程序中使用pyAA。我搜索了互聯網,但無法獲得任何解決方案。 我將msvcp71.dll複製到windows/system32,但仍然存在問題。

我已經解決了它(大約7個月前),但我的硬盤驅動器崩潰,當我嘗試重新創建它時,我似乎無法解決它現在。 :-(

我會非常感激,如果有人可以幫助我在這裏

編輯: 當我使用沒有捆綁文件選項py2exe,這是工作完美,但我在使用捆綁文件選項,它。

我嘗試不使用zipfile選項,其中它與可執行文件一起創建一個library.zip,但它失敗了,我使用7-zip解壓縮了library.zip,並發現_pyAAc.pyd在pyAA中文件夾內的zip文件,因此,它看起來像存儲器loadlibrary函數的一些問題。

當我t使用windows解壓縮函數解壓,失敗。我不得不使用7-zip解壓縮它。這是一個可能的線索嗎?

回答

0

你錯過了一些DLL文件在構建...

首先搜索你的硬盤的文件_pyAAC.pyd。確保它包含(發貨)在你的版本。

然後在.pyd文件(在您的py2exe編譯版本!)上使用'dependency walker'來查看它仍然缺少的內容(其他DLL導致.pyd文件的MemoryLoadLibrary消息)。請確保這些依賴關係也發貨,...

+0

謝謝ChristopheD。我檢查了它,但發現它確實發貨了。我在我的問題上做了一些修改,請看同樣的內容。 – Koran 2009-11-30 05:01:40

+0

我以前見過這個(有些dll不喜歡隨bundle_files選項一起發貨,不知道有沒有辦法繞過它,一種方法可能是關閉bundle_files,或者你可以用看看替代方案:http://stackoverflow.com/questions/1689086/are-there-any-alternatives-to-py2exe(例如pyinstaller) – ChristopheD 2009-11-30 06:41:03