Python 3.x Pyinstaller可执行文件失败,带有pkg_资源。DistributionNotFound错误

Python 3.x Pyinstaller可执行文件失败,带有pkg_资源。DistributionNotFound错误,python-3.x,pyinstaller,Python 3.x,Pyinstaller,我正在使用tkinter制作一个PDF工具可执行文件。无论如何,pyinstaller成功创建了可执行文件,但它不会运行。我标记了--onedir并添加了必要的依赖文件--add data。我还使用--paths标志将路径添加到非标准库包中。当我从命令提示符下运行可执行文件时,我得到以下结果: 问题似乎来自ocrmypdf模块,pkg_resources.DistributionNotFound说。我尝试搜索修复程序,但我看到的所有问题都与我的问题有点不同,因为.py脚本对我来说运行得很好。这

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


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

经过进一步研究,我找到了解决方案。问题在于pyinstaller,而不是ocrmypdf模块。解决方案是,您必须在项目的文件夹中创建hook-py脚本。根据您使用的模块的不同,这有点不同,但对于本例,我必须在一个名为“hooks”的文件夹中创建两个hook-py脚本。以下是我编写的两个脚本:

mypdf.py

from PyInstaller.utils.hooks import collect_all

datas, binaries, hiddenimports = collect_all('ocrmypdf')
from PyInstaller.utils.hooks import collect_all

datas, binaries, hiddenimports = collect_all('pikepdf')
hook pikepdf.py

from PyInstaller.utils.hooks import collect_all

datas, binaries, hiddenimports = collect_all('ocrmypdf')
from PyInstaller.utils.hooks import collect_all

datas, binaries, hiddenimports = collect_all('pikepdf')
欲了解更多信息,请访问


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

这个问题已经在这里被询问了两次,但还没有解决方案。希望你能成为第一个得到答案的人。由于这是ocrmypdf特有的,你有没有试着就ocrmypdf github问题寻求帮助?我会把它放在github中,但是堆栈溢出社区规则@barnyAsk在pyinstaller github问题上也是如此。这些优秀软件包的开发人员最适合解决这个问题。