Centos6 + python3.5 ,问题:‘ImportError: No module named '_sqlite3'’

时间:2022-03-06 23:13:33

安装好的python3.5,import sqlite3 遇到报错:‘ImportError: No module named '_sqlite3'’

尝试了网上诸多解决方法,均没有成功,这些失败的方法包括

(1)无效方法1

step1,yum install sqlite-devel

step2,进入python35安装文件夹,例如我的路径是/usr/local/src/Python3.5.3

           cd /usr/local/src/Python3.5.3

step3,重新编译安装

          ./configure

          make && make install

step4,上述行不通,找到python35安装文件,进入,vi setup.py 修改sqlite_inc_paths,.....(百度。。。)

(2)无效方法2

yum install sqlite3-devel

找不到该包

(3) 无效方法3

step1,Linux命令行输入:find / -name _sqlite3.so,得到里类似/usr/lib/python2.6/lib-dynload/_sqlite3.so结果

step2,进入python环境,import sys 然后 sys.path,得到类似/usr/local/lib/python2.7/lib-dynload/

step3,复制,linux命令行输入cp /usr/lib/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/lib-dynload/

结果依然不行

--------------------------------------------------------------------------------

正确合理的做法如下:

(1)下载sqlite-autoconf-3230100.tar.gz,下载连接http://www.sqlite.org/2018/sqlite-autoconf-3230100.tar.gz

(2)tar xzf sqlite-autoconf-3230100.tar.gz

(3)我的路径是/root/sqlite-autoconf-3230100

cd /root/sqlite-autoconf-3230100

编译安装

./configure

make && make install

(4)在liunx命令行输入sqlite3,得到如下结果:

[root@YeMa sqlite-autoconf-3230100]# sqlite3
SQLite version 3.23.1 2018-04-10 17:39:29
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.

sqlite> 

  说明sqlite3编译安装成功,输入.quit退出sqlite3

(5)重新编译python35,才能识别sqlite3

找到Python35安装文件,如果忘记路安装路径,不要着急

a,回到根目录, cd ~/

b,find -name Python-3.5.3

我的输出结果是:

./usr/local/src/Python-3.5.3

./usr/local/src/Python-3.5.3/build/temp.linux-x86_64-3.5/usr/local/src/Python-3.5.3

安装路径为:/usr/local/src/Python-3.5.3

找到安装路径后,进入

cd /usr/local/src/Python-3.5.3

重新编译,安装,这里特别注意,红色部分

./configure --prefix=/usr/local/python3.5

make && make install

如何确定你的红色部分应该填什么呢?

python35安装文件位置/usr/local/src

cd /usr/local

例如我的结果得到:

bin  etc  games  include  lib  lib64  libexec  python3.5  sbin  share  src

编译安装成功后,进入python环境,输入import sqlite3,正常无报错即可


PS: 我中间倒腾的时候,修改了python3.5安装文件下setup.py,增加了红色圈中两行,没有验证是否起作用

Centos6 + python3.5 ,问题:‘ImportError: No module named '_sqlite3'’

如果以上方案行不通,试着修改setup.py