我在Windows 7上使用py2exe来使用psutil制作应用程序。我正在使用python 2.7。我正在使单个文件可执行文件。当我尝试使用psutil编译python python程序时,快将结束时说:
The following modules appear to be missing
['_psutil_bsd', '_psutil_linux', '_psutil_osx', '_psutil_posix', '_psutil_sunos', '_scproxy', '_sysconfigdata', 'builtins']
但是,该程序可以正常编译。当我运行编译的程序时,它崩溃并生成一个日志文件:
追溯(最近一次通话):
在第27行的文件“TaskManager.py”中
在load_module中的文件“zipextimporter.pyc”,第82行
在第135行的文件“psutil__init __。pyc”中
在load_module中的文件“zipextimporter.pyc”,第82行
在第14行的文件“psutil_psmswindows.pyc”
在load_module中的文件“zipextimporter.pyc”,第98行
ImportError: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。我猜出于某种原因,它没有得到正确的包装。
最佳答案
所有这些问题都来自py2exe,包括一堆系统dll。
添加以下排除列表。 (主要是最后4个)。解决此问题。
dll_excludes=['msvcr71.dll', "IPHLPAPI.DLL", "NSI.dll", "WINNSI.DLL", "WTSAPI32.dll"]
您可以将.dll与在系统文件夹中找到的.dll进行对照/交叉引用,以获取其中不应该包含的.dll列表。
关于python - 如何在py2exe中找不到ps2中包含psutil的组件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20930173/