【发布时间】:2021-05-22 01:58:31
【问题描述】:
您好,感谢您在这里查看我的问题。
我是编码新手,正在学习 python。我正在使用 Linux,特别是 Ubuntu。 我编写了一个简单的基于 tkinter 的应用程序,它在启动时会显示特定日期的倒计时,然后有一个按钮可以单击以关闭窗口。我已经在 PyCharm 中运行了这个应用程序,它在那里运行良好。我也在 IDLE 中完美运行。在这两种情况下,tkinter 导入和运行都很好。
我在终端中找到了我的应用程序的 .py 文件并使用了
$ chmod +x main.py
然后
$ ./main.py
我收到回复
ubuntu@ubuntu:~$ ./main.py 回溯(最近一次通话最后):中的文件“./main.py”,第 9 行 导入 tkinter 中的文件“/usr/local/lib/python3.8/tkinter/__init__.py”,第 36 行 import _tkinter # 如果失败,你的 Python 可能没有为 Tk 配置 ModuleNotFoundError:没有名为“_tkinter”的模块
我设法找到的大多数类似问题都表明必须安装 tkinter,但肯定会出现 tkinter 已安装,它在 PyCharm 和 IDLE 中运行,我按照列出的目录查看它们实际上是在系统,我已经运行了
ubuntu@ubuntu:~$ pip install tk 默认为用户安装,因为普通站点包不可写 已满足要求: ./.local/lib/python3.8/site-packages (0.1.0) 中的 tk
我跑了
ubuntu@ubuntu:~$ python3 Python 3.8.5(默认,2021 年 2 月 4 日,18:26:47) [GCC 9.3.0] 在 Linux 上 键入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 >>> 导入 tkinter 回溯(最近一次通话最后):中的文件“ ”,第 1 行 中的文件“/usr/local/lib/python3.8/tkinter/__init__.py”,第 36 行 import _tkinter # 如果失败,你的 Python 可能没有为 Tk 配置 ModuleNotFoundError:没有名为“_tkinter”的模块
我所做的一切似乎都在确认 tkinter 已安装但不会在终端中导入。 有什么帮助吗?
更新 首先,我要感谢迄今为止发表评论的所有人,您的见解无疑使我在这里取得了进步。
我发现我有 2 个单独的 python 3.8.5 安装
我在上面展示了当我在终端中使用 $python3 和 >>>import tkinter 时发生的事情。我刚刚尝试通过文件路径调用终端中的其他安装并发出相同的命令:
root@ubuntu:/# /usr/bin/python3.8 Python 3.8.5(默认,2020 年 7 月 28 日,12:59:40) [GCC 9.3.0] 在 Linux 上 键入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 >>> 导入 tkinter >>> 退出()
tkinter 进口。 我没有收到上述错误。
我知道我必须在我的系统的某个地方有一个工作的 tkinter,因为 PyCharm 和 IDLE 都成功地运行了它。但是,当我只是尝试运行 .py 文件时,终端仍然无法导入它。
所以现在我想我的问题变成了如何删除 2 月 4 日的安装并保留 7 月 28 日的安装,或者如何让 2 月 4 日的安装导入 tkinter。
【问题讨论】:
-
pip install tk安装TensorKit,而不是tkinter。您需要通过系统包管理器安装:sudo apt-get install python3-tk. -
$ sudo apt-get install python3-tk Reading package lists... Done Building dependency tree Reading state information... Done python3-tk已经是最新版本(3.8.5-1~20.04 .1)。 0 个已升级,0 个新安装,0 个要移除,61 个未升级。
-
您的
pythonpath中是否列出了安装 tkinter 的文件夹? -
@pavel 抱歉,我不确定 pythonpath 是什么意思。这是否意味着它是否安装在同一目录中? tkinter 安装在 /usr/local/lib/python3.8/tkinter/ - 我在哪里可以找到 pythonpath?
-
pythonpath是您系统上的环境变量之一,包含安装 Python 包的目录位置。
标签: python python-3.x tkinter import terminal