解决Linux下多版本python 启动Django连接sqlite3报错,分享Linux解决Django使用sqlite问题

本文分享了在Linux环境下使用Django2.2与Python3.7进行项目部署的详细步骤,包括解决sqlite3模块缺失问题及自定义sqlite安装配置,确保Django项目顺利运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本机环境:

默认安装的python2.6 ,在/usr/lib/python2.6

手工安装python3.7  在/data/python

项目框架:

Django2.2+Python3.7,+sqlite

有同学会问,为啥用sqlite,不用mysql,我只是搭建了一个很小的服务,没必要用mysql了,模型中就一张表,三个字段。

今天把windows下开发好的Django项目部署到Linux,最简单的项目。一个项目、一个app,为什么要创建app呢,因为如果要是用Django的模型,必须创建app,在Linux部署启动的时候报错了:

module does not define module export function (PyInit__sqlite3

原因就是没有没有sqlite3的库文件,然后把python2下面的库文件

解决步骤

cp /usr/lib/python2.6/lib-dynload/_sqlite3.so /data/python/lib/python3.7/lib-dynload/_sqlite3.so

复制过去之后,依然没有解决问题,后来结合网上的资料解决了,我的解决过程如下:

继续深挖

下载安装介质:

wget https://www.sqlite.org/2017/sqlite-autoconf-3170000.tar.gz --no-check-certificate

解压:

  1. tar -zxvf sqlite-autoconf-3170000.tar.gz
  2. cd sqlite-autoconf-3170000
  3. ./configure --prefix=/data/sqlite3 --disable-static --enable-fts5 --enable-json1 CFLAGS="-g -O2 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_RTREE=1"
  4. make && make install

以上过程中,我把sqlite安装到/data/sqlite3目录下了。根据个人情况修改

然后重新安装python3.7,原有目录不删除,直接覆盖安装。过程如下:

  1. [root@hadoop tmp]# tar -zxvf Python-3.7.6.tgz 
  2. [root@hadoop tmp]# cd Python-3.7.6
  3. [root@hadoop Python-3.7.6]# ls
  4. [root@hadoop Python-3.7.6]# export LD_RUN_PATH=/data/sqlite3/lib
  5. [root@hadoop Python-3.7.6]# ./configure --prefix=/data/python LDFLAGS="-L/data/sqlite3/lib" CPPFLAGS="-I /data/sqlite3/include"
  6. [root@hadoop Python-3.7.6]# make && make install

经过漫长的等待,会安装完成。

执行python

然后import sqlite3

如果没有错误,说明安装成功。

我的项目的目录结构如下图:

下一步在linux部署 Django+uwsgi+nginx,还有把部署资源服务的过程给大家分享。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pentiumcpu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值