您好,感谢您在这里查看我的问题。
我是编码新手,正在学习 Python。我正在使用 Linux,特别是 Ubuntu。 我编写了一个简单的基于 tkinter 的应用程序,它在启动时显示特定日期的倒计时,然后有一个按钮可以单击以关闭窗口。我已经在 PyCharm 中运行了这个应用程序,它在那里完美运行。我也在 IDLE 中完美运行。在这两种情况下,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 已安装,但不会在终端中导入。 有什么帮助吗?
更新 首先,我要感谢到目前为止所有评论过的人,你们的见解无疑使我在这里取得了进步。
我发现我有 2 个单独的 python 3.8.5 安装
我上面展示了在终端中使用 $python3 和 >>>import tkinter 时发生的情况。我刚刚尝试通过其文件路径调用终端中的另一个安装并发出相同的命令:
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。
答案 0 :(得分:0)
我曾经在 ubuntu 上遇到过类似的问题,即 pip
已链接到 python2
安装,您是否尝试过使用 pip3
:
pip3 install tkinter
答案 1 :(得分:0)
最后,当我卸载自编译安装时,我确定我在/usr/bin/中有系统python,在/usr/local/bin/中有相同版本的自编译python,并ram我的应用程序从终端一切正常,tkinter 导入,我的应用程序从终端运行,与我使用的两个 IDE 完全一样。
我按照以下说明卸载:https://unix.stackexchange.com/questions/190794/uninstall-python-installed-by-compiling-source 只需将 2.7 的引用替换为 3.8
感谢所有评论的人,你是一个很大的帮助,尤其是@acw1668,你的评论让我知道我在两个文件路径下都有安装。非常感谢。