Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python-为什么Tkinter只在交互式环境中工作?_Python_Tkinter_Python 3.7 - Fatal编程技术网

python-为什么Tkinter只在交互式环境中工作?

python-为什么Tkinter只在交互式环境中工作?,python,tkinter,python-3.7,Python,Tkinter,Python 3.7,我刚刚开始试验Tkinter,由于我注意到一些特性,我有一些问题 首先,我尝试使用交互式python环境,并键入以下内容: >>> import tkinter >>> win = tkinter.Tk() 一个新窗口正确地出现在我的屏幕上 然后我尝试创建一个.py脚本: import tkinter win = tkinter.Tk() 这就是我犯的错误 Traceback (most recent call last): File "tkinter

我刚刚开始试验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'
它会打印hello两次。因此,我删除了
import tkinter
行。它只打印一次Hello

我实在无法解释这种奇怪的行为。我在找一个可以的人


谢谢。

根据异常详细信息,当从“tkinter.py”运行
import tkinter
行时,您正在将自己的“tkinter.py”文件作为模块而不是tkinter库导入
Tk()
未在“tkinter.py”文件中定义,调用它会导致
AttributeError
。在第二个例子中,
print(“Hello”)
也会发生同样的情况-它会运行两次:第一次,当您导入文件时,第二次,在此之后调用
print(“Hello”)


将文件从“tkinter.py”重命名为其他名称,例如“my_example.py”,以解决此问题。

将文件名从“tkinter.py”更改为其他名称,例如“my_example.py”,我怀疑您正在导入自己的py文件。重命名该文件。“Hello”打印两次,一次用于运行文件,另一次用于导入文件,因此打印异常:dthank很多。这就是问题所在。重命名文件并重新运行python的工作与预期的一样。非常感谢。:)
import tkinter

print("Hello")