我在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来代替。它工作得很好。 –