【已解决】ModuleNotFoundError: No module named ‘_tkinter‘

由于网络上大多文章都是有关No module named 'tkinter’的问题,而没有实质性解决_tkinter找不到的问题。注意:这两个报错是不同的!!!

对于No module named '_tkinter'问题,如果你使用了网络上大部分方法都不适用,单纯安装python3-tk后还是报错。那么这篇文章将会对你有帮助。

本人设备环境: Ubuntu 22.04, python3.10

ModuleNotFoundError: No module named '_tkinter' 这个错误表明 Python 无法找到名为 _tkinter 的模块。 _tkinter 是 Python 标准库的一部分,提供了对 Tkinter GUI 工具包的访问。这个问题可能由几个原因引起:

⚙️问题分析

  1. Python安装不完整或损坏:在 Python 安装过程中,Tkinter 可能没有被正确安装或损坏。
  2. 缺失 Tkinter 库:在某些系统中,需要单独安装 Tkinter 依赖的库。
  3. 使用定制的 Python 版本:如果你使用的是自定义编译或从非官方源安装的 Python,Tkinter 可能没有被包含在内。

🚩报错原因

报错的主要原因是 _tkinter 模块没有在你的 Python 安装中找到。这可能是因为 tkinter 没有被安装,或者安装不完整。

🧩解决思路

  1. 安装tkinter依赖:在某些系统上,你可能需要安装 Tkinter 的依赖。
  2. 重新编译python:安装完 Tkinter 的依赖,尝试重新编译 Python。

💡解决方法

1. 安装tkinter依赖

(1)在Ubuntu上,你可以使用以下命令(其他系统,请自行变换):

sudo add-apt-repository ppa:deadsnakes/ppa  #添加一个个人仓库,里面有适合python3.10版本的tkinter模块
sudo apt-get update
sudo apt-get install python3.10-tk

(2)此时输入以下命令,在终端查看tk的版本:

dpkg --list | grep python3.10-tk

注意:假如你在第(1)步中使用的安装命令是sudo apt-get install python3-tk,此时一定要查看一下tk的版本。因为假如你的环境中有多个python版本,那此时你安装的tk版本并不一定是你想要的版本。因为这里我使用的命令是sudo apt-get install python3.10-tk,则是安装了特定python版本的tk。

如果你直接使用apt安装的python,应该不用编译,下面的2和3大步骤操作不用执行。

2. 重新编译python

我这里的python环境是自己手动下载包,自行编译的,所以添加了新的模块后,需要重新编译。
(1)首先进入Python3.10文件夹下

cd [Python-3.10.0/](这里换成自己的路径)

(2)开始安装

./configure --enable-optimizations

(3)编译

sudo make
sudo make install

这样python3.10就重新编译完成了。

3. 设置环境变量

如果您执行了上述第2步骤,那么就已经在/usr/local中手动安装了 python3.10 版本。另一方面,当您使用apt安装 python3.10-tk 时,其软件包进入/usr而不是/usr/local,因此还需要设置环境变量。
(1)我们可以进入到下面这个目录查看是否存在和tk相关的软件包:

cd /usr/lib/python3.10/lib-dynload/
ls

列举图我们可以看到已经安装了tkinter相关的文件_tkinter.cpython-310-x86_64-linux-gnu.so,但是是在/usr目录下的。

(2)添加环境变量

sudo vim ~/.bashrc

在文件的最下面添加一行:

export PYTHONPATH="${PYTHONPATH}:/usr/lib/python3.10/lib-dynload/"

保存文件后,source一下:

source ~/.bashrc

至此,就完成了所有操作,那么你可以试着导入一下tkinter模块啦。
导入模块

参考网址

  • https://blog.csdn.net/PythonAigc/article/details/138270411?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-138270411-blog-78763208.235%5Ev43%5Epc_blog_bottom_relevance_base3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-2-138270411-blog-78763208.235%5Ev43%5Epc_blog_bottom_relevance_base3&utm_relevant_index=5
  • https://gitcode.csdn.net/65e7da8c1a836825ed78a9b9.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6NTEzMDA1LCJleHAiOjE3MTk4ODA5NjEsImlhdCI6MTcxOTI3NjE2MSwidXNlcm5hbWUiOiJsaHloYWl5YW4ifQ.ji8ivsYz7hU_d1OoNltIurw0vDzTjN-MpZny0415aKY
  • https://blog.csdn.net/weixin_43935402/article/details/121416812
  • https://askubuntu.com/questions/1459418/can-not-use-tkinter-anymore-and-when-i-try-to-install-the-system-tells-me-that-i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳叶lhy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值