在Python3运行Django的时候,遇到了如题所示的错误,具体如下:

首先,查看下系统上有没有【_sqlite3】

可以看到:是有的。

看看Python3的系统路径:

可以看到Python3也有目录:lib-dynload,而这个路径下是没有【_sqlite3.so】:

注意,这个时候,不能将Python2的sqlite3.so直接复制过来,这个是错误的做法;

正确的做法如下:

从SQLite官方获取【autoconf】包:
https://www.sqlite.org/download.html

或者,从官方获取最新的介质包:
https://www3.sqlite.org/cgi/src/doc/trunk/README.md

下载地址:
https://www.sqlite.org/2021/sqlite-autoconf-3340100.tar.gz
https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=release

下载并解压:

源码包编译:./configure

安装:

安装完成后:

重新编译安装Python:

修改:setup.py

在其中找到【sqlite_inc_paths】定义,增加前面编译安装的SQLite的路径:

比较修改前后的文件:

重新编译Python:

安装:

再查【_sqlite3.so】:

然后,再试试Django,看还会不会报错:

可以看到,报错已经不一样了,刚刚的【_sqlite3.so】的问题已经解决了。

现在的这个SQLite版本过低的问题是因为前面的SQLite的安装没有写入环境变量:

或者替换掉系统默认的SQLite3:

或者:

如上,已经加好了环境变量,再试试:

可以看到,跑成功了。


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装