Linux入门攻坚——14、实战软件安装-搭建Python3.8环境-2

上一篇解决了openssl和pip问题,这一篇来解决sqlite问题

创建app时出现错误,模块_sqlite3找不到,查询sqlite相关的包:

在python2.6的lib-dynload路径下,有_sqlite3.so,这个应该就是Python需要的sqlite模块,lib-dynload应该就是python相关模块的保存路径。

将其拷贝到Python3.8对应目录中,测试一下:

此时错误提示是导入错误,应该是版本不对造成的。

这个错误通常出现在导入Python C扩展模块时,提示无法正确找到模块导出的初始化函数。

确定一下模块路径:

换一个版本的so,_sqlite3.cpython-38-x86_64-linux-gnu.so,是最新的,依然错误如下

完整安装一个sqlite:

下载:sqlite-autoconf-3450000.tar.gz,是最新的版本

执行:tar -xvf sqlite-autoconf-3450000.tar.gz
           cd sqlite-autoconf-3450000
            .configure && make && make install

即执行默认安装sqlite,默认安装路径应该是/usr/local

使用: ./configure --prefix=/usr/local/python3.8  --with-openssl=/usr/local/openssl1.1 LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" && make && make install

安装后:

没有在/usr/local/python3.8/lib/python3.8/lib-dynload下生成_sqlite3.so或_sqlite3.cpython-38-x86_64-linux-gnu.so,安装不成功;
修改一下:执行:
 LD_RUN_PATH=/usr/local/lib ./configure --prefix=/usr/local/python3.8  --with-openssl=/usr/local/openssl1.1 LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include"
LD_RUN_PATH=/usr/local/lib make
LD_RUN_PATH=/usr/local/lib make install
这样,就执行成功,

再重新测试一种方法:
安装完sqlite3.45后,将sqlite3.45的lib库路径写ld.so.conf,具体是在/etc/ld.so.conf.d/下新建一个conf文件,文件名随意,一般按软件名,如sqlite3.45.conf,其内容为:/usr/local/lib,然后执行ldconfig -v
随后执行: ./configure --prefix=/usr/local/python3.8  --with-openssl=/usr/local/openssl1.1 LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include",也可以安装成功。

测试将sqlite安装到独立目录中
1)
tar -xvf sqlite-autoconf-3450000.tar.gz
cd sqlite-autoconf-3450000
./configure --prefix=/usr/local/sqlite3.45 && make && make install


2)sqlite库路径加入ld.so.conf中

3)重新编译安装python3.8

第一次没有加LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include",不成功,随后加上再次执行,成功。

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值