所以我使用python 3.2.2的IDLE在python的tkinter中写了一个gui。当我在交互模式下从IDLE运行程序时,一切正常,但是当我通过双击它或从命令提示符运行它时会产生错误并且不启动程序。我知道问题在于这一行:
path_da=self.simdia.askstring("Path to start","Paths must be relative!")
我从tkinter导入了所有内容。 path_da是来自askstring对话框的字符串。 我将simdia设置为simpledialog作为我班级的公共变量。 我只是不明白为什么在IDLE中使用F5而不是从命令提示符
运行它时这是有效的答案 0 :(得分:1)
我将此标记为欺骗,因为使用simpledialog.askstring
而未从simpledialog
模块导入tkinter
收到错误,如果只是simpledialog
,则会出现同样的错误正在被使用。如果它不被认为是重复,那么答案是:
引用Roger's answer类似的问题:
IDLE使用Tkinter作为其图形环境。它可能是 您的代码依赖于IDLE本身导入的副作用。 如果在没有子进程的情况下使用IDLE,则尤其如此。
使用
时不会导入simpledialog模块
from tkinter import*
尝试将此添加到您的代码中:
import tkinter.simpledialog as simpledialog