我可以在普通的 Python IDLE 和 Visual Studio Code 上运行我的代码,但使用相同 Python 安装的 pyinstaller 编译的可执行文件会出现此错误:
Traceback (most recent call last):
File "MyApp.py", line 40, in <module>
File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
File "tkinterweb\__init__.py", line 30, in <module>
ModuleNotFoundError: No module named 'bindings'
[4712] Failed to execute script MyApp
我已经通过
bindings
安装了pip
模块。
我也在第 40 行被导入了
from tkinterweb import HtmlFrame
。我能做什么?请帮助我。
我认为这个问题已经在 Github 上得到了解答,但我会在这里为遇到此问题并在将来某个时候偶然发现此页面的任何人添加答案。
--collect-all tkinterweb
标志。例如,如果您使用 pyinstaller --windowed yourscript.py
而不是运行 pyinstaller --windowed --collect-all tkinterweb yourscript.py
。这告诉 PyInstaller 包含 TkinterWeb 文件。在许多流行的软件包中,这个 --collect-all
命令不是必需的,因为 PyInstaller 有额外的文件(称为钩子)告诉它遇到某些软件包时要做什么。 PyInstaller 没有附带 TkinterWeb 挂钩,因此您只需告诉它手动包含必要的 TkinterWeb 文件即可。仅此而已!