先贴报错:
python
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.10/sqlite3/__init__.py", line 57, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.10/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
在网上查了一下,居然要我先安装sqlite3,再重新编译安装python,真无语了,奈何开发环境是Windows,话不多说,连上Centos开搞吧:
一、安装sqlite3的包
python
yum install -y sqlite-devel
我这里把各个服务器都装上了,准备全都搞一遍,免得后面麻烦,请告诉我还是什么是不支持的吧,真想全都先装了再编译,其他都还好,主要是费时间。
二、重新编译python
看看_sqlite3.so这个动态库在什么地方,等会儿编译的时候需要链接。
[root@he Python-3.10.11]# find / -name _sqlite3.so
/usr/lib64/python2.7/lib-dynload/_sqlite3.so
看看python的系统路径都在什么地方:
python
>>> import sys
>>> print(sys.path)
['', '/usr/local/lib/python3.10/site-packages', '/var/local/Python-3.10.11', '/usr/local/lib/python310.zip', '/usr/local/lib/python3.10', '/usr/local/lib/python3.10/lib-dynload']
将这个动态库拷贝到python的动态库中(干嘛要去掉呢)
cp /usr/lib64/python2.7/lib-dynload/_sqlite3.so /usr/local/lib/python3.10/lib-dynload/
这样把sqlite3的动态库拷贝到python的系统环境变量下的动态库路径中,后面编译的时候就省事了。
进入到python安装包的目录,然后就开始编译吧,等编译完成
python
make clean
./configure
make && make install
ok,编译好了,再import一下sqlite3
>>> import sqlite3
>>>
没有报错,那就是成功了。