PyInstaller 不会导入 pywin32 / win32clipboard - 运行 可执行文件时出现 ImportError

PyInstaller won't import pywin32 / win32clipboard - ImportError upon running executable

我在 Windows 10 和 Python 3.8.6 中工作,并使用 PyInstaller 4.0 将我的脚本编译为可执行文件以供分发。我今天刚刚添加了一个需要导入 win32clipboard 的功能。 PyInstaller 完成编译且没有任何错误,但由于以下原因无法加载可执行文件:

ImportError: DLL load failed while importing win32clipboard: The specified module could not be found.

我尝试使用隐藏导入标志再次编译程序:

pyinstaller myscript.py --onefile --hidden-import win32clipboard

这在尝试加载程序时产生了相同的结果和 ImportError(编译期间没有错误)。

我知道 win32clipboard 是 pywin32 的一部分,我的程序已编译并且 运行 在需要导入它的代码更改之前没有任何问题。在使用启用 win32clipboard 的功能时,它仍然可以在空闲状态下正常运行并按预期运行。

是否有某种方法可以手动指示 PyInstaller 正确导入它,或者有其他方法可以解决此问题并使可执行文件再次运行?

我能够通过在 win32clipboard 之前将 pywintypes 导入我的脚本来解决这个问题。

import pywintypes
import win32clipboard

在一份旧的 GitHub 错误报告中找到了关于人们使用 PyInstaller 导入 win32api 的问题的建议,并决定试一试。执行此操作后,我能够毫无问题地编译和 运行 我的程序。