前言
很久没有水博客了,在运行一个Django
项目的时, 服务器版本大概Centos7.2
,新机器花了点时候安装完需要的环境和依赖,本想一发入魂直接成功的,昨天在Ubuntu上成功运行,
结果Centos就给我整个报错。
1 | ..... |
就是Django
查到的Sqlite
的版本不对,找到的是3.7.17,
但是对版本要求(version <= 3.8.3),爬了一下资料,
在Django版本说明中看到
1 | # SQLite的最低支持版本从3.7.15增加到3.8.3 |
这就得升级Sqlite3的版本了
下载
选择需要的版本下载
Source Code -> sqlite-autoconf*
安装
以写博客时的最新版安装为例
1 | # 下载 |
等待编译完成即可,如果没有什么其他的报错,应该就OK的。
测试
如果是Centos7,yum更新了最新的Sqlite,默认的版本应该是3.7.17,1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# 备份默认的sqlite
$ sudo mv -v /usr/bin/sqlite3 /usr/bin/sqlite3.7.17
"/usr/bin/sqlite3" -> "/usr/bin/sqlite3.7.17"
# 复制新版本的sqlite文件夹
# 此时目录 sqlite-autoconf-3280000
$ sudo cp -v sqlite3 /usr/bin
"sqlite3" -> "/usr/bin/sqlite3"
# 查看一下文件是否成功
$ ls /usr/bin |grep sqlite
sqlite3
sqlite3.7.17
# 共享库
$ export LD_LIBRARY_PATH="/usr/local/lib"
# 如果登出后失效的,可以写进~/.bashrc 或 ~/.bash_profile
使用
1 | # 版本查看 |
正常了,没有版本不匹配的报错了。
其实主要sqlite3是yum源的最新版本才3.7.17,别卸载它后再装(跳过坑),yum依赖sqlite,所以只有编译安装或者其他方式安装后替换文件目录。
另外要注意的是,
sudo python3.6 & python3.6
的执行结果是不同的。
sudo不一定能读到新版本的Sqlite,窝再去爬爬文章待补充。
文章比较乱,机器差异什么的或许有不同,仅供参考。
参考文章: Django2.2で開発サーバー起動時にSQLite3のエラーが出た場合の対応
END.