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。
我不明白这是怎么发生的。 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。