【问题标题】:Having issues in running python code in Terminal with tkinter使用 tkinter 在终端中运行 python 代码时遇到问题
【发布时间】: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


【解决方案1】:

我曾经在 ubuntu 上遇到过类似的问题,pippython2 安装相关联,您是否尝试过使用 pip3

pip3 install tkinter

【讨论】:

    【解决方案2】:

    最后,当我卸载自编译安装并ram我的应用程序时,我确定我在/usr/bin/中有系统python,在/usr/local/bin/中有相同版本的自编译python从终端一切正常,tkinter 导入,我的应用程序从终端运行,与我使用的两个 IDE 完全一样。

    我根据这些说明卸载了:https://unix.stackexchange.com/questions/190794/uninstall-python-installed-by-compiling-source 只需将 2.7 的引用替换为 3.8

    感谢所有评论的人,你们提供了很大的帮助,尤其是@acw1668,您的评论让我发现我在两个文件路径下都有安装。非常感谢。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 2022-08-03
      • 2019-12-22
      相关资源
      最近更新 更多