_sqlite_datetime_extract django.db.utils.NotSupportedError

在升级sqlite3版本到3.27.2后,在centos7下运行django项目还是出现了错误,错误如下
python3.8/site-packages/django/db/backends/sqlite3/base.py", line 215, in get_new_connection
create_deterministic_function('django_date_extract', 2, _sqlite_datetime_extract)
django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher。
 _sqlite_datetime_extract
对比了下在ubuntu下运行正常的gcc版本,centos7下为4.85,ubuntu为7.5.0,在编译python3.8.6时,因为gcc版本问题没有选择 --enable-optimizations选项。考虑到gcc升级会牵连更多更多东西,采用了简书网友周六放风筝的方法https://www.jianshu.com/p/e81d59ccb80d 不依赖系统提供的sqlite3 使用 pysqlite3 和 pysqlite3-binary 库来操作。

安装pysqlite库

pip3 install pysqlite3
pip3 install pysqlite3-binary

修改db代码导入库

vim python3.8/site-packages/django/db/backends/sqlite3/base.py
# 修改内容
# from sqlite3 import dbapi2 as Database (注释掉这段)
from pysqlite3 import dbapi2 as Database # 启用pysqlite3

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据