无法使用 tkinter 导入它

问题描述 投票:0回答:2

我在 pycharm 上编写了代码

from tkinter import *
,然后尝试通过编写代码
screen = Tk()
打开一个窗口,但显示错误“未解析的引用‘Tk’”。

我之前在另一个项目中尝试过这个方法,并且它曾经有效;我不知道现在出了什么问题。 我也已经将python更新到最新版本(3.12.2)

from tkinter import *

screen = Tk()
python tkinter import
2个回答
1
投票

您可以执行

import tkinter as tk
并使用
screen = tk.Tk()
,看看是否有效。我想知道如果存在安装问题,为什么它没有抛出 No module named 'tkinter' 错误。


0
投票

尽管

from tkinter import *
存在于很多教程和文档中,但不是建议这样做。

所有执行

import *
的操作都会给全局命名空间带来很多人类难以跟踪的名称,并且可能会破坏一些工具。 (我猜 pycharm 现在(2024 年)就知道如何处理它,所以你的问题可能是根本没有安装 tkinter)

无论如何,第一件事: improt tkinter 保留其命名空间。为了不必为每个类、调用和常量添加

tkinter.
前缀,您可以执行
import tkinter as tk
- 然后您只需要为所有内容添加
tk.
前缀。

因此,该代码将变为:

import tkinter as tk

screen = tk.Tk()

screen.mainloop()

现在,如果 pycharm 仍然显示错误,只需尝试运行上面的代码:您应该在屏幕上的某处看到一个小的匿名空白窗口。

如果不起作用,请记下错误。如果您在 Linux 系统上,使用 Python 系统,则大多数发行版将 Python 语言分解为多个包 - 因此您必须手动安装名为

python3-tkinter
的包(名称可能会有所不同,具体取决于您的情况) Linux 发行版)。在 Windows 上,这种情况不应该发生:Windows Python 安装程序始终完整安装该语言。

至于 Mac - 我不能确定。通过 homebrew 安装的 Python 应该可以工作,但系统 Python 可能缺少 tkinter。补救措施是安装另一个 Python 解释器,并避免在您的个人项目中使用系统 Python。

此外,正如 @JRiggles 在 O.P. 的注释中添加的那样:如果您的文件名为“tkinter.py”,Python 将导入该文件而不是它自己的“tkinter”包,然后它就会崩溃。只需将文件重命名为任何其他名称即可。

© www.soinside.com 2019 - 2024. All rights reserved.