【已解决】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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/742770.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用opencv自带的Haar级联分类器模型

OpenCV自带的Haar级联分类器模型: haarcascade_eye.xml: 这个模型用于检测眼睛。 haarcascade_eye_tree_eyeglasses.xml: 这个模型用于检测眼镜。 haarcascade_frontalcatface.xml: 这个模型用于检测猫脸。 haarcascade_frontalcatface_extended.xml: 这个模型用…

数字化转型的难点在哪里?该如何突破?

我先把结论抛出来:数字化转型的难点不在于“数字化”,而在于“转型”。 如何理解这句话呢? 如果你此前做过数字化转型,想必也都清楚这一点,即:“数字化”解决的是生产工具的升级换代问题,“转…

Labview_网络流

网络流的介绍 网络流是一种易于配置、紧密集成的动态通信方法,用于将数据从一个应用程序传输到另一个应用程序,其吞吐量和延迟特性可与 TCP 相媲美。但是,与 TCP 不同的是,网络流直接支持任意数据类型的传输,而无需先…

若依前后端分离项目整合shardingjdbc分表(详细,分片字段订单id)

文章目录 1. 引入Maven依赖2.引入配置文件3.兼容之前的数据库源,使用现在的sharding数据库源(shardingjdbc默认的数据源),但是配置好文件之后是没有生效的,需要加配置文件覆盖4. 检测是否成功5. 如何使用,在需要使用的…

【大数据开发语言Scala的入门教程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

基于Java微信小程序同城家政服务系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟感兴趣的可以先收藏起来,还…

探索AI世界系列:俗说AI智能体

AI agent,翻译为中文就是AI智能体。 什么是AI智能体呢? 一,GPT对AI智能体的定义 AI智能体,即人工智能体(Artificial Intelligence Agent),是具有自主性、学习能力和推理能力的计算机程序。 …

华为盘古大模型微调实践

1. 什么是大模型 2. 指令微调介绍 3. 盘古大模型指令微调实践 4. Q&A 分享嘉宾|吴章淋 华为技术有限公司 nlp算法研究工程师 编辑整理|Tony Wang 内容校对|李瑶 出品社区|DataFun 01 什么是大模型 首先来介绍一下什…

「漏洞复现」通天星CMSV6车载定位监控平台 point_manage/merge SQL注入致RCE漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

二叉树 | Java | LeetCode 235 701 450 做题总结,BST特性、 调整二叉树结构(增+删)

235. 二叉搜索树的最近公共祖先 思路:要利用二叉搜索数的性质。当前遍历节点 cur 的数值大于p q时,说明 p q 的父节点在 cur 的左子树。当前遍历节点 cur 的数值小于p q时,说明 p q 的父节点在 cur 的右子树。当前遍历节点 cur 的数值在 p q…

记录一个前端axios传参格式的问题

今天改造一个其他系统的页面,直接把原来系统的接口拿过来复用,发现怎么传参都报400,地址参数都一样,怎么就报错了呢,报错原因大概是后台无法解析出参数(后台属于其他平台,无法测试)。…

python 中关于无法导入自己写的类

python 中关于无法导入自己写的类。解决方法 - Jc_code - 博客园 (cnblogs.com)https://www.cnblogs.com/jc-home/p/12098065.html 加个.就挺好

无中心化崛起:Web3对传统互联网的冲击与重构

随着Web3技术的兴起,传统互联网面临着前所未有的挑战和重构。本文将深入探讨Web3的无中心化特性如何对传统互联网产生冲击,以及其可能带来的重大影响和未来发展趋势。 1. 传统互联网的局限与问题 传统互联网,通常称为Web2,主要依…

利用maven命令往本地仓库添加jar包

一:遇到问题 有些jar包在中央仓库没有,需要手动往本地仓库添加,方便以后打包使用。 比如:添加红框这个依赖,现在爆红 二:解决办法 **第一步:**打开idea,找到运行按钮旁边的框&am…

Guitar Pro如何只播放低声部 Guitar Pro乐队总谱怎么看

在音乐制作与学习过程中,熟练掌握音乐编曲和练习工具至关重要。Guitar Pro作为一款深受吉他爱好者喜爱的专业软件,其强大的功能之一便是能够独立播放乐谱中的各个声部,这对于细致研究和练习低音线条如贝斯线极为有用。下面我们来看看Guitar P…

Flutter 像素编辑器#05 | 缩放与平移

theme: cyanosis 本系列,将通过 Flutter 实现一个全平台的像素编辑器应用。源码见开源项目 【pix_editor】。在前三篇中,我们已经完成了一个简易的图像编辑器,并且简单引入了图层的概念,支持切换图层显示不同的像素画面。 《Flutt…

AVI 是什么格式,AVI 格式用什么播放器打开?

AVI 是什么格式?提到 AVI 格式想必大家多数会想到在 DVD 横行的年代,光盘中所包含的媒体视频格式多是以 AVI 格式存储。AVI 是一个非常通用的容器格式,支持多种视频和音频编解码器。这意味着从DVD中提取视频内容时,可以通过转码为…

第二证券炒股技巧:什么是pe估值法,有哪些优缺点?

1、pe估值法是指即市盈率估值法,是一种上市公司常用的股票估值办法。它通过比较公司的股价与其盈余能力来评估股票的价值,从而判别股票是高估还是轻视。假定公司的盈余能力不再改动,以当时的股价/市值买入这家公司,单纯靠赢利需求…

计算机网络 —— 网络字节序

网络字节序 1、网络字节序 (Network Byte Order)和本机转换 1、大端、小端字节序 “大端” 和” 小端” 表示多字节值的哪一端存储在该值的起始地址处;小端存储在起始地址处,即是小端字节序;大端存储在起始地址处,即是大端字节…

【嵌入式Linux】i.MX6ULL IRQ中断服务函数的编写

文章目录 IRQ中断服务函数流程解释0. 基本流程步骤1. 入口部分2. 读取中断号3. 切换模式并调用C语言处理函数4. 清理和恢复环境5. 完整代码 本文章结合了正点原子的 i.mx6u嵌入式Linux开发指南和笔者的理解。 IRQ中断服务函数流程解释 IRQ Interrupt Request 外部中断 0. 基本…