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 命令。
我正在使用 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 命令。