Pyinstaller,.py 版本有效,.exe "No module named Tkinter"?

Pyinstaller, .py version works, .exe "No module named Tkinter"?

我不明白这是怎么发生的。 myscript.py 有效,Tkinter 已安装。然而,一旦我使用 pyinstaller 将它转换为 .exe,我 运行 myscript.exe,我在命令提示符中收到一条消息说 "No module named Tkinter".

我该如何解决这个问题? 我已经多次尝试转换它,尝试使用 --noupx,还尝试重新安装 pyinstaller。谢谢

PyInstaller - 隐藏导入

尝试使用 --hiddenimport 标志。执行 --hiddenimport=Tkinter,或将 Tkinter 替换为您需要的任何模块。这个问题似乎在整个 PyInstaller 社区中反复出现。 Here is one article

姓名Space

Tkinter 已将其命名空间从 Python 2 更改为 Python 3。它现在在 Python 3 中命名为 tkinter,在 [=30 中命名为 Tkinter =] 2. 这是我喜欢使用的代码,所以它是跨版本的。

try:
  import Tkinter as tk
except ImportError:
  import tkinter as tk

然后您可以将 Tkinter 引用为 tk。或者,如果您这样做 from Tkinter import *,您可以在没有名称空间的情况下使用所有内容。有关版本之间名称更改的更多信息,请参阅列表 here