如何在Py2exe中包含psutil的组件py2exe找不到?

tre*_*kby 5 python module py2exe include

我在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']
Run Code Online (Sandbox Code Playgroud)

但是,该程序编译良好.当我运行编译的程序时,它崩溃并生成一个日志文件:

回溯(最近一次调用最后一次):文件"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"]
Run Code Online (Sandbox Code Playgroud)

以及公正

"includes": ["psutil"]
Run Code Online (Sandbox Code Playgroud)

我也尝试将所有列出的模块py2exe列为缺失.除了包含没有做任何事情的psutil之外,py2exe找不到这些文件.

关于这个主题在线有相当多的类似问题,但没有一个有很好的答案(如果有任何答案),许多错误都不是我的问题.

更新:奇怪的是,我在py2exe的构建目录的build\bdist.win32\winexe\collect-2.7中找到了_psutil_mswindows.pyd.我想由于某种原因它没有得到正确的包装.

Inf*_*amy 4

所有这些问题都来自 py2exe,包括一堆系统 dll。

添加以下排除列表。(主要是最后4个)。解决这个问题。

dll_excludes=['msvcr71.dll', "IPHLPAPI.DLL", "NSI.dll",  "WINNSI.DLL",  "WTSAPI32.dll"]
Run Code Online (Sandbox Code Playgroud)

您可以查看/交叉引用 .dll 与系统文件夹中的 .dll,以获取其中包含哪些不应该出现的列表。