无法导入tkinter,未定义tkinter-似乎不是通常的问题

时间:2019-01-06 17:00:09

标签: python-3.x tkinter

无论我使用什么方法导入tkinter,Python3都会给我这个错误或其他错误。

我在线搜索了我的问题的解决方案,但是没有一个有效。我正在运行最新版本的Ubuntu。

#!/usr/bin/env python3
from tkinter import *
def main():
    main_window = tkinter.Tk()
    main_window.title("free communism here")
    click_function = print("WEWE")
    communism_button = tkinter.button(text = "click for free communism", command = click_function, height = 40, width = 120)
    communism_button.pack()
    tkinter.mainloop()
main()

结果是:

Traceback (most recent call last):
  File "communism button.py", line 10, in <module>
    main()
  File "communism button.py", line 4, in main
    main_window = tkinter.Tk()
NameError: name 'tkinter' is not defined.

我不知道为什么该程序无法运行。它应该显示一个按钮,如果您按它,它应该显示“ WEWE”。对不起,我英语可能不好。

2 个答案:

答案 0 :(得分:1)

尝试这种方式:

#!/usr/bin/env python3
from tkinter import *
def main():
    main_window = Tk()
    main_window.title("free communism here")
    click_function = print("WEWE")
    communism_button = Button(text = "click for free communism", command = click_function, height = 40, width = 120)
    communism_button.pack()
    main_window.mainloop()
main()

答案 1 :(得分:1)

问题在于您使用from tkinter import *,然后将按钮功能用作tkinter.Button。当您使用from xxx import *时,就不再使用“ xxx”软件包名称了(所以仅使用Button())。否则,只需使用import tkinter,然后再使用tkinter.Button()

对于较大的脚本,我个人更喜欢import xxx,因为它更清楚方法的来源。

除此之外,您的代码仍然对“ click_function”存在另一个问题。您应该将其设为实际功能。而且tkinter.Button()的首字母为'B'

import tkinter
def click_function():
    print("WEWE")

def main():
    main_window = tkinter.Tk()
    main_window.title("free communism here")
    communism_button = tkinter.Button(text = "click for free communism", command = click_function, height = 40, width = 120)
    communism_button.pack()
    main_window.mainloop() # call here main_window instead of tkinter
main()