在python 3.3.2
中获取模块对象不可调用from tkinter import *
import tkinter as tk
root = tk()
root.geometry('400x400')
答案 0 :(得分:2)
执行import Tkinter as tk
时,tk
指的是模块。这与import Tkinter
Tkinter
引用模块没有什么不同。先前对tk
的任何定义都将丢失。
稍后,当您执行root = tk()
时,您尝试调用名为tk
的模块。这就是您收到错误TypeError: 'module' object is not callable
的原因 - 您正在调用tkinter模块(因为()
),这是您无法做到的。
您犯的错误是tkinter模块定义了一个名为Tk
的类,并且您要调用/实例化此类。更改代码以执行此操作:
import tkinter as tk
root = tk.Tk()
此外,您不应混合使用同一个库的两个导入 - 执行import tkinter as tk
(推荐)或from tkinter import *
但不要同时执行这两个操作。
答案 1 :(得分:0)
我很确定您希望以小写字母调用Tk
(或tk.Tk
)而不是tk
。第一个是您使用from tkinter import *
行导入的名称。后者是您使用第二个import语句导入模块的名称。