【发布时间】:2020-02-20 21:16:57
【问题描述】:
我刚刚开始尝试使用 Tkinter,由于我注意到了一些特殊性,我有一些问题。
首先,我尝试使用交互式python环境并输入以下内容:
>>> import tkinter
>>> win = tkinter.Tk()
我的屏幕上正确出现了一个新窗口。
然后我尝试做同样的事情来创建一个 .py 脚本:
import tkinter
win = tkinter.Tk()
这是我得到的错误
Traceback (most recent call last):
File "tkinter.py", line 1, in <module>
import tkinter
File "/home/***/tests/tkinter.py", line 2, in <module>
win = tkinter.Tk()
AttributeError: module 'tkinter' has no attribute 'Tk'
我无法解释:为什么 tkinter 模块存在并且在交互式环境中可以正常工作,但如果我将代码放入脚本中它会失败?顺便说一句,我使用命令python3.7 tkinter.py 运行脚本,并使用命令python3.7 运行交互式python shell。
之后我尝试了一个更简单的程序(在同一个脚本中,但我删除了创建的 pycache 文件夹:我必须承认我在这里写作时忽略了它的目的):
import tkinter
print("Hello")
打印 hello 两次。所以我删除了import tkinter 行。它只打印一次Hello。
我真的无法解释这种奇怪的行为。我正在寻找可以的人。
谢谢。
【问题讨论】:
-
将您的文件名从“tkinter.py”更改为其他名称,例如“my_example.py”
-
我怀疑您正在导入自己的 py 文件。重命名文件。 “你好”被打印两次,一次是在文件运行时,一次是在导入文件时,因此 print-ception :D
-
非常感谢。这就是问题所在。重命名文件并重新运行 python 按预期工作。非常感谢。 :)
标签: python tkinter python-3.7