迁移原同事写的程序,到新服务器上边。运行报错。解决方案有三种
卸载高版本django
pip uninstall django
安装低版本,如
pip install django==2.1.7
注意:如果是生产环境或者项目规定了django版本,降低django版本显然不合适,最好的解决方案是升级sqlite3的版本
升级sqlite3版本的主要步骤有:
wget https://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz
- $ tar -zxvf sqlite-autoconf-3270200.tar.gz
- $ cd sqlite-autoconf-3270200
- $ ./configure --prefix=/usr/local
- $ make && make install
- $ mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
- $ ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
在用户目录下.bashrc文件最后一行添加export LD_LIBRARY_PATH="/usr/local/lib"
并在终端输入立即生效命令source ~/.bashrc
。
在django安装包里,找到/…/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py
脚本,找到判断sqlite版本的代码,注释掉并更改如下:
- def check_sqlite_version():
- # if Database.sqlite_version_info < (3, 8, 3):
- if Database.sqlite_version_info < (3, 6, 3):
- raise ImproperlyConfigured('SQLite 3.6.3 or later is required(found %s).' % Database.sqlite_version)
方案三修改了django源码,存在未知风险,不建议使用。