当bundle_files = 1时,py2exe + pywin32 MemoryLoadLibrary导入失败

Cla*_*diu 6 python pywin32 py2exe

我创建了一个使用pywin32的简单程序.我想将它部署为可执行文件,所以我py2exe它.我也不想要大量的文件,所以我设置bundle_files为1(意味着将所有内容捆绑在一起).但是,当我尝试运行它时,我得到:

Traceback (most recent call last):
  File "pshelper.py", line 4, in <module>
  File "zipextimporter.pyc", line 82, in load_module
  File "win32.pyc", line 8, in <module>
  File "zipextimporter.pyc", line 98, in load_module
ImportError: MemoryLoadLibrary failed loading win32ui.pyd
Run Code Online (Sandbox Code Playgroud)

在我的安装脚本中,我尝试过packages=["win32ui"]includes=["win32ui"]作为选项,但这没有帮助.如何让py2exe包含win32ui.pyd?

如果我不要求它捆绑文件我没有这个问题,所以我现在可以这样做,但我想知道如何让它正常工作.

Cla*_*diu 1

迄今为止最有效的解决方法是简单地使用 ctypes 重新实现 pywin32 函数。这不需要另一个 .pyd 或 .dll 文件,因此可以避免该问题。