今天老王在一台 CentOS 服务器上跑 Python 程序时,项目依赖已经通过 requirements.txt 都安装好了,但是运行时依然报错 ImportError: No module named ‘_sqlite3‘,这里分享下这个问题的原因和解决办法。
一、问题原因
Python 版本:Python 3.7.9
CentOS 版本:CentOS Linux release 7.3.1611 (Core)
从错误日志上来看,这个错误很明显是因为没有 sqlite3 模块,但是尝试用 pip3 安装 sqlite3 时(pip3 install sqlite),报错如下,无法成功安装依赖:
ERROR: Could not find a version that satisfies the requirement sqlite3 (from versions: none) ERROR: No matching distribution found for sqlite3
二、解决办法
Google 后发现,CentOS 安装 sqlite3 不是通过 pip 安装的,而是需要借助 yum:
yum install sqlite-devel
安装好 sqlite3 后,再重新 make 一下自己的 Python:
make & make install
之后再跑之前报错的程序,就会发现 Python 可以正常使用 sqlite3 模块了。