首页 > 解决方案 > 仅当我编译我的代码时,Python“ModuleNotFoundError: No module named 'bindings'”错误

问题描述

我可以在普通的 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

我也是from tkinterweb import HtmlFrame在第 40 行导入的。我该怎么办?请帮我。

标签: pythonpyinstaller

解决方案


我认为这已在Github上得到解答,但我会在此处为遇到此问题并在未来某个时候偶然发现此页面的任何人添加答案。

  1. 升级到 TkinterWeb 和 PyInstaller 的最新版本。如果您不是最新版本,它将不起作用。
  2. 然后--collect-all tkinterweb在捆绑您的应用程序时使用该标志。例如,如果您pyinstaller --windowed yourscript.py改用运行pyinstaller --windowed --collect-all tkinterweb yourscript.py. 这告诉 PyInstaller 包含 TkinterWeb 文件。在许多流行的包上,这个--collect-all命令不是必需的,因为 PyInstaller 有额外的文件(称为钩子)告诉它遇到某些包时该怎么做。PyInstaller 没有为 TkinterWeb 提供挂钩,因此您只需告诉它手动包含必要的 TkinterWeb 文件。

就这样!


推荐阅读