Python "ModuleNotFoundError: No module named 'bindings'" error only when I compile my code
Python "ModuleNotFoundError: No module named 'bindings'" error only when I compile my code
我可以 运行 我的代码在普通 Python IDLE 和 Visual Studio 代码上,但是使用相同 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
我已经通过 pip
安装了 bindings
模块。
我也在第 40 行导入了 from tkinterweb import HtmlFrame
。我该怎么办?请帮助我。
我认为这已在 Github 上得到解答,但我会在此处添加答案,以供遇到此问题并在未来某个时候偶然浏览此页面的任何人使用。
- 升级到最新版本的 TkinterWeb 和 PyInstaller。如果您不是最新版本,它将无法使用。
- 然后在捆绑您的应用时使用
--collect-all tkinterweb
标记。例如,如果您使用 pyinstaller --windowed yourscript.py
而不是 运行 pyinstaller --windowed --collect-all tkinterweb yourscript.py
。这告诉 PyInstaller 包含 TkinterWeb 文件。在许多流行的包上,这个 --collect-all
命令不是必需的,因为 PyInstaller 有额外的文件(称为挂钩)告诉它在遇到某些包时该怎么做。 PyInstaller 没有为 TkinterWeb 提供挂钩,因此您只需告诉它手动包含必要的 TkinterWeb 文件即可。
就这些了!
我可以 运行 我的代码在普通 Python IDLE 和 Visual Studio 代码上,但是使用相同 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
我已经通过 pip
安装了 bindings
模块。
我也在第 40 行导入了 from tkinterweb import HtmlFrame
。我该怎么办?请帮助我。
我认为这已在 Github 上得到解答,但我会在此处添加答案,以供遇到此问题并在未来某个时候偶然浏览此页面的任何人使用。
- 升级到最新版本的 TkinterWeb 和 PyInstaller。如果您不是最新版本,它将无法使用。
- 然后在捆绑您的应用时使用
--collect-all tkinterweb
标记。例如,如果您使用pyinstaller --windowed yourscript.py
而不是 运行pyinstaller --windowed --collect-all tkinterweb yourscript.py
。这告诉 PyInstaller 包含 TkinterWeb 文件。在许多流行的包上,这个--collect-all
命令不是必需的,因为 PyInstaller 有额外的文件(称为挂钩)告诉它在遇到某些包时该怎么做。 PyInstaller 没有为 TkinterWeb 提供挂钩,因此您只需告诉它手动包含必要的 TkinterWeb 文件即可。
就这些了!