我创建了一个简单的 python 脚本来打开一个简单的对话框。它在spyder中有效,但当我在shell中运行命令时则无效。
我正在运行 Linux Mint。我用 Anaconda 的 miniconda 安装了 Spyder。
这是我的代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import tkinter as tk
tkwin = tk.Tk()
tkwin.withdraw()
mytext = tk.simpledialog.askstring("A Simple Dialog Box", "Enter some text:", parent=tkwin)
在 Spyder 中,我看到对话框。在 shell 中运行时,我运行 python 并输入相同的 Python 命令,但出现错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'tkinter' has no attribute 'simpledialog'
我确认我在 Spyder 和脚本中运行相同的 Python。
有趣的是,spyder 中的
print(dir(tk))
显示 simpledialog,但 shell 中的 print(dir(tk))
则不显示。如果我在 Spyder 的控制台中输入 tk
,我会得到
<module 'tkinter' from '/home/keith/Apps/miniconda3/lib/python3.12/tkinter/__init__.py'>
在 shell 中我得到同样的东西。这是怎么回事?我该如何解决? 谢谢, 基思
您缺少
tkinter.simpledialog
模块。
片段:
import tkinter as tk
import tkinter.simpledialog #<== Add to module
tkwin = tk.Tk()
tkwin.withdraw()
mytext = tk.simpledialog.askstring("A Simple Dialog Box", "Enter some text:", parent=tkwin)