Pyinstaller 无法执行脚本 pyi_rth_pkgres

Che*_*Bin 2 python pyinstaller

我使用 pyinstaller 将 py 脚本转换为 exe,但是当我尝试运行 exe 时,我得到了这个。我该如何修复它? 错误图像

Seb*_*llo 5

您必须告诉 pyinstaller 需要在程序中捆绑哪些模块,因此,在您的情况下,您必须将其作为隐藏导入传递:pkg_resources

在运行 pyinstaller 后生成的 .spec 文件中,您将找到如下选项:

hiddenimports=[]
Run Code Online (Sandbox Code Playgroud)

像这样说:

hiddenimports=["pkg_resources"]
Run Code Online (Sandbox Code Playgroud)

然后,像这样运行 pyinstaller:

pyinstaller app.spec
Run Code Online (Sandbox Code Playgroud)

或者,如果您仍然想通过 .py 运行它,请将其作为参数传递,例如

pyinstaller app.py --hidden-import pkg_resources
Run Code Online (Sandbox Code Playgroud)

通常,如果您的程序不仅仅是一个“Hello world”,那么这将是更多的模块,您只需将它们全部添加到hiddenimports作为列表,直到没有更多的ModuleNotFoundError。

如果您修改了 .spec 文件,请记住不要对 .py 文件运行 pyinstaller,因为它将创建一个新文件并覆盖它,忽略前一个文件。

您必须使用 .spec 文件执行 pyinstaller