You need to enable JavaScript to run this app. Thonny中已正确安装sqlite3模块,运行import sqlite3仍报错的原因
优惠活动
大模型
产品
解决方案
定价
更多

Thonny中已正确安装sqlite3模块,运行import sqlite3仍报错的原因

报错根因
  • 模块加载路径错配:执行import sqlite3时,Python解释器优先加载了/lib路径下的损坏同名文件,而非真正可用的sqlite3模块,和是否通过包管理器完成安装没有直接关系。
  • 认知误区:sqlite3是Python标准库内置模块,正常情况下不需要通过包管理器额外安装。之前通过Thonny包管理器安装的第三方同名包,会在系统路径下残留残缺文件,甚至覆盖原生模块文件,最终触发'NoneType' object has no attribute 'func'报错——这类报错本质是加载的文件本身没有完整的功能实现,执行到内部代码时调用了空对象的属性。
  • 潜在文件命名冲突:如果之前编写过名叫sqlite3.py的自定义测试脚本,被误存到系统库路径或当前工作目录下,导入时会被优先加载,这类自定义脚本没有实现sqlite3的完整逻辑,也会触发同类空对象调用错误。
分步解决方法
  • 定位错误文件:在Thonny交互式终端执行import sqlite3; print(sqlite3.__file__),如果输出路径和报错提示的/lib/sqlite3.py一致,直接删除这个非解释器原生的损坏文件即可。操作时注意核对文件归属,不要误删Python解释器自带的标准库sqlite3模块
  • 清理冗余安装:打开Thonny包管理界面,搜索之前安装的sqlite3第三方包并完全卸载。只要Python解释器安装配置正常,内置sqlite3模块可以直接调用,不需要额外安装。
  • 排查本地命名冲突:检查当前工作目录、Python模块搜索路径下有没有命名为sqlite3.py的自定义文件,全部重命名为无冲突的名称(比如sqlite_test_demo.py),避免导入时优先加载自定义脚本而非原生模块。
  • 功能验证:完成调整后重新执行import sqlite3,如果可以正常导入,再运行conn = sqlite3.connect(":memory:")的简单测试代码,确认可以正常创建数据库连接,即代表问题修复。

内容的提问来源于stack exchange,提问作者Hürol Keskinkılıç

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 20:06:03