TkMessageBox - 无模块

新手上路,请多包涵
import TkMessageBox

当我导入 TkMessageBox 时,它显示 messsge ‘ImportError: No module named ‘TkMessageBox’

据我所知,我使用的是 python 3.3.2 和 Tk 8.5。

我使用的是错误版本的 python 还是导入错误?

任何答案都将非常有用。或者我正在使用的版本中是否有类似的东西?

原文由 Tom Lowbridge 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

在 Python3.x 中,情况发生了一些变化:

    >>> import tkinter
   >>> import tkinter.messagebox
   >>>

我的意思是我们所说的 tkMessageBox 在 Python2.x 中变成 tkinter.messagebox 在 Python3.x 中

原文由 Billal Begueradj 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您不想更改 Python 2 和 Python 3 的代码,您可以使用 import as:

 try:
    from tkinter import messagebox
except ImportError:
    # Python 2
    import tkMessageBox as messagebox

:edit: 但是,由于 Debian 政策,tkinter 在 Debian 中是一个单独的包,所以为了避免不正确地回退到 Python 2 代码,我现在使用:

 import sys
if sys.version_info.major >= 3:
    from tkinter import messagebox
else:
    import tkMessageBox as messagebox

然后按如下方式使用消息框将在任一版本中工作:

 messagebox.showerror("Error", "Message.")

原文由 Poikilos 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题