ModuleNotFoundError: No module named '_sqlite3'

环境

Centos6.8、python3.6

问题描述

我在使用python中的sqlite3时,出现了以下问题:
在这里插入图片描述

原因

安装python的时候没有找到sqlite3.so的库。

解决办法

1、简单解决方法

# 安装sqlite相关的全部,可能并不需要全部,为了简单直接用*号代替了
yum install sqlite*
然后重新编译python或者重新安装python

2、如果上面的方法不行,那么编译安装sqlite3

首先下载编译

wget https://www.sqlite.org/2018/sqlite-autoconf-3250200.tar.gz
tar -zxvf sqlite-autoconf-3250200.tar.gz
cd sqlite-autoconf-3250200
./configure --prefix=/usr/local/sqlite3
make && make install

安装完后你可以看见如下提示

#手动安装sqlite3 完成的时候会有这么一段提示:
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/sqlite3/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.

这段内容显示了sqlite3的安装路径:/usr/local/sqlite3/lib。
特别注意add LIBDIR to the ‘LD_LIBRARY_PATH’ environment variable,这是sqlite建议添加环境变量。
所以:

echo export LD_LIBRARY_PATH=/usr/local/lib >> /etc/profile
source /etc/profile

最后重新编译python3安装就能够成功了。重新编译的方式有很多,我选择的是这个博客

当然可能还是没有成功!!!

通过下图查找,能发现3个文件libsqlite3.so.0等,将/usr/lib64/libsqlite3.so.0这3个文件删除并替换,重新编译python3安装就能够成功了(这次没问题!)。
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值