我在Windows 7上使用py2exe來製作一個使用psutil的應用程序。我正在使用Python 2.7。我正在製作一個文件可執行文件。當我嘗試用psutil編譯python python程序時,它說:如何在py2exe中找不到py2exe找不到的psutil組件?
The following modules appear to be missing
['_psutil_bsd', '_psutil_linux', '_psutil_osx', '_psutil_posix', '_psutil_sunos', '_scproxy', '_sysconfigdata', 'builtins']
但是,程序編譯得很好。當我運行編譯的程序,它崩潰並生成一個日誌文件:
回溯(最近通話最後一個): 文件「TaskManager.py」,第27行,在 文件「zipextimporter.pyc」,行82,在load_module 文件 「psutil__init __。PYC」,管線135,在 文件 「zipextimporter.pyc」,線82,在load_module 文件 「psutil_psmswindows.pyc」,第14行,在 文件 「zipextimporter.pyc」,線路98,在load_module 導入錯誤:MemoryLoadLibrary未能加載_psutil_mswindows.pyd
我曾嘗試在設置選項部分上市:
"includes": ["_psutil_mswindows.pyd"]
以及剛剛
"includes": ["psutil"]
我也曾嘗試包括所有的模塊py2exe列爲失蹤。除了包含psutil,它沒有做任何事情,py2exe找不到這些文件。
在網上有很多關於這個主題的類似問題,但沒有一個有很好的答案(如果有答案的話),許多錯誤都不是我的問題。
更新:奇怪的是,我在py2exe的build目錄的build \ bdist.win32 \ winexe \ collect-2.7中找到了_psutil_mswindows.pyd。我猜是因爲某些原因它沒有正確打包。
剛剛遇到同樣的問題。它看起來像pyd文件被正確打包,它在library.zip中找到。我正在調查。 – dotz
當我在Windows 8的64位安裝中使用py2exe打包psutil,然後嘗試在Windows XP Home Edition 32位上運行該exe文件時,發生此問題。我所做的是,我將整個構建過程移至Windows XP(32位),並且問題自行解決。我昨天在網上的某個地方發現了這個建議,所以關於這個bug起源的想法不是我的。我們正在討論一個問題,文件_psutil_mswindows.pyd被打包(可以在library.zip中找到)。 – dotz
我實際上只是用pyinstaller來代替。它工作得很好。 –