Python 3.x python tkinter模块对象不可调用

Python 3.x python tkinter模块对象不可调用,python-3.x,tkinter,Python 3.x,Tkinter,在Python3.3.2中,获取模块对象不可在此基础上调用 from tkinter import * import tkinter as tk root = tk() root.geometry('400x400') 我很确定您希望调用Tk(或Tk.Tk)而不是Tk,都是小写的。第一个是使用tkinter import*行中的导入的名称。后者是您在第二条导入语句中导入模块的名称。当您将tk作为tk导入时,tk指的是一个模块。这与导入Tkinter没有什么不同,其中,Tkinter指的是一个

在Python3.3.2中,获取模块对象不可在此基础上调用

from tkinter import *
import tkinter as tk

root = tk()
root.geometry('400x400')

我很确定您希望调用
Tk
(或
Tk.Tk
)而不是
Tk
,都是小写的。第一个是使用tkinter import*行中的
导入的名称。后者是您在第二条导入语句中导入模块的名称。

当您将tk作为tk导入时,
tk
指的是一个模块。这与导入Tkinter
没有什么不同,其中,
Tkinter
指的是一个模块。以前对
tk
的任何定义都将丢失

稍后,如果执行
root=tk()
,则尝试调用名为
tk
的模块。这就是为什么会出现错误
TypeError:“module”对象不可调用的原因
——您正在调用tkinter模块(因为
()
),而您无法执行此操作

您犯的错误是tkinter模块定义了一个名为
Tk
的类,而您要调用/实例化的正是这个类。更改代码以执行此操作:

import tkinter as tk
root = tk.Tk()

另外,您不应该将同一个库的两个导入混合在一起——要么将tkinter作为tk导入
(推荐),要么将tkinter导入的
*
,但不要同时执行这两个操作

builtins.AttributeError:'module'对象没有属性'Tk'@skilskillo:如果出现该错误,我猜您将程序命名为“tkinter.py”,或者python正在加载另一个名为“tkinter.py”的文件。尝试执行导入,然后运行以下命令以查看正在加载的内容:
print(tk.\uuuu file\uuuu)
[evaluate tkinter.py]C:\Users\skilo\Documents\pythonprojects\tkinter.py C:\Users\skilo\Documents\pythonprojects\tkinter。py@SkiloSkilo:将该文件重命名为其他文件。您的脚本正在导入它,而不是真正的tkinter模块。