Pyinstaller 可执行文件失败并出现 pkg_resources.DistributionNotFound 错误

Pyinstaller executable fails with pkg_resources.DistributionNotFound error

我正在使用 tkinter 制作一个 PDF 工具可执行文件。无论如何,pyinstaller 成功创建了可执行文件,但它不会 运行。我标记了 --onedir 并添加了必要的依赖文件 --add-data。我还使用 --paths 标志将路径添加到我的非标准库包中。当我从命令提示符 运行 可执行文件时,我得到这个:

问题似乎来自 ocrmypdf 模块并表示 pkg_resources.DistributionNotFound。我尝试搜索修复程序,但我看到的所有问题都与我的问题有点不同,因为 .py 脚本 运行 对我来说很好。这是 pyinstaller 问题,还是我缺少模块?我也在使用 pyinstaller 4.0。

经过更多研究,我找到了解决方案。问题在于 pyinstaller,而不是 ocrmypdf 模块。解决方案是您必须在项目的文件夹中创建 hook py 脚本。根据您使用的模块,它会略有不同,但对于这种情况,我必须在名为 'hooks' 的文件夹中创建两个 hook py 脚本。这是我制作的两个脚本:

hook-ocrmypdf.py

from PyInstaller.utils.hooks import collect_all

datas, binaries, hiddenimports = collect_all('ocrmypdf')

hook-pikepdf.py

from PyInstaller.utils.hooks import collect_all

datas, binaries, hiddenimports = collect_all('pikepdf')

有关详细信息,请转至 here.

此外,您必须将 --additional-hooks-dir HookFolderPath 标志添加到 pyinstaller 命令。