当前位置: 首页 > 知识库问答 >
问题:

使用tkinter在终端中运行python代码时出现问题

毋承基
2023-03-14

您好,谢谢您在这里看我的问题。

我不熟悉编码,正在学习python。我使用的是Linux,特别是Ubuntu。我编写了一个简单的基于tkinter的应用程序,它在启动时会显示特定日期的倒计时,然后有一个按钮可以单击关闭窗口。我已经在PyCharm中运行了这个应用程序,它在那里工作得非常好。我在空闲时也能跑得很好。在这两种情况下,tkinter都导入并运行良好。

我找到了。py文件用于我在终端中的应用,并已使用

$ chmod +x main.py

然后

$ ./main.py 

我得到了答复

ubuntu@ubuntu:~$ ./main.py 
Traceback (most recent call last):
  File "./main.py", line 9, in <module>
    import tkinter
  File "/usr/local/lib/python3.8/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

我设法找到的大多数类似问题都表明必须安装tkinter,但毫无疑问,tkinter似乎已安装,它在PyCharm和IDLE中运行,我已按照列出的目录查看它们实际上在系统上,我已运行

ubuntu@ubuntu:~$ pip install tk
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: tk in ./.local/lib/python3.8/site-packages (0.1.0)

我已经跑了

ubuntu@ubuntu:~$ python3
Python 3.8.5 (default, Feb  4 2021, 18:26:47) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.8/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

我所做的一切似乎都表明tkinter已安装,但不会导入终端。有什么帮助吗?

更新首先,我要感谢所有到目前为止发表评论的人,你们的见解肯定让我在这里取得了进步。

我发现我有两个单独的python 3.8安装。5.

我在上面展示了使用$python3和

root@ubuntu:/# /usr/bin/python3.8
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> exit()

TKinter进口。我不明白上面的错误。

我知道我必须在我的系统的某个地方有一个工作的tkinter,因为PyCharm和IDLE都成功地运行了它。然而,当我尝试运行时,终端仍然无法导入它。py文件。

所以现在我想我的问题是如何删除2月4日的安装并保留7月28日的安装,或者如何让2月4日的安装导入tkinter。

共有2个答案

任昊阳
2023-03-14

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

我已根据以下说明卸载:https://unix.stackexchange.com/questions/190794/uninstall-python-installed-by-compiling-source简单地用3.8替换对2.7的引用

感谢所有发表评论的人,你帮了大忙,尤其是@acw1668,你的评论让我意识到我在两个文件路径下都安装了软件。非常感谢。

姚善
2023-03-14

我曾经在ubuntu上遇到过一个类似的问题,即pip链接到python2安装,您是否尝试过使用pip3

pip3 install tkinter
 类似资料:
  • 有人知道如何设置使用cmd的按钮吗?

  • 我似乎一直在尝试在vscode中运行python3文件。我注意到右上角运行代码的三角形按钮也不再是绿色。 我已经为python3建立了自己的venv,并且安装了numpy包——我已经检查了< code>pip list,它在那里,并且在导入时调用这个包中的任何方法时运行良好。 当我右键单击vscode中的文件并单击在终端中运行Python文件时-它运行得非常好,并为我提供了所需的输出。 但是,当我

  • 我试图了解shebang是如何工作的,并想知道当您在终端提示符下键入< code>node时会发生什么。想知道它是否在某个地方调用了c函数中的< code>main。使用node有一段时间了,我只懂一些基础知识。The shebang 以某种方式读取节点可执行文件,我不确定它是什么或在哪里,以及它从哪里开始。然后是实际计算表达式< code>node并将其定向到shebang的代码,但这可能太复杂

  • 目前,我在VS代码集成终端上运行Python代码时遇到问题,尽管代码在任何其他编辑器或Powershell(Windows用户)上都能完美运行。 我目前正在使用Python的Anaconda版本(PATH上的Anaconda),但在昨晚对VS代码进行了一些更新后,错误阻止了我在集成终端上运行代码。我尝试重新安装Anaconda和VS代码,但问题仍然存在。 第1行字符:41 ... onda3/py

  • 问题内容: 我如何在Linux终端上执行C#代码作为Shell脚本。 我有以下示例代码: 当我运行shell bash时,我使用。使用C#怎么做? 问题答案: 该(hashbang)标签是用来告诉使用哪种解释让你的Perl,PHP,庆典,SH等脚本将正确运行shell。 但是C#不是脚本语言,它旨在被编译成可执行格式。如果要使用C#,则至少需要安装编译器和运行时,最好是安装IDE(集成开发环境)来