问题描述:
在阿里云的自带centos上运行python manage.py runserver的时候报错:
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
解决方法1:给django降级
-
卸载django: pip uninstall django
-
安装低版本: pip install django==2.1.8
解决方法2:升级SQLite
1.查看系统的sqlte3的版本
sqlite3 --version
Centos
系统自带的sqlite3
版本偏低,在上面的错误提示中要求需要SQLite 3.8.3 or later
,那么就需要去升级 SQlite
的版本了。
2.Centos7安装最新的sqlite3并设置更新python库版本
-
#更新SQLite 3
-
#获取源代码(在主目录中运行)
-
[root@djangoServer ~]# cd ~
-
[root@djangoServer ~]# wget https://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz
-
[root@djangoServer ~]# tar -zxvf sqlite-autoconf-3270200.tar.gz
-
-
#构建并安装
-
[root@djangoServer ~]# cd sqlite-autoconf-3270200
-
[root@djangoServer sqlite-autoconf-3270200]# ./configure --prefix=/usr/local
-
[root@djangoServer sqlite-autoconf-3270200]# make && make install
-
[root@djangoServer sqlite-autoconf-3270200]# find /usr/ -name sqlite3
-
/usr/bin/sqlite3
-
/usr/lib64/python2.7/sqlite3
-
/usr/local/bin/sqlite3
-
/usr/local/python3/lib/python3.7/site-packages/django/db/backends/sqlite3
-
/usr/local/python3/lib/python3.7/sqlite3
-
[root@djangoServer sqlite-autoconf-3270200]#
-
-
#不必要的文件,目录删除
-
[root@djangoServer sqlite-autoconf-3270200]# cd ~
-
[root@djangoServer ~]# ls
-
anaconda-ks.cfg sqlite-autoconf-3270200 sqlite-autoconf-3270200.tar.gz
-
[root@djangoServer ~]#
-
[root@djangoServer ~]# rm -rf sqlite-autoconf-3270200.tar.gz
-
[root@djangoServer ~]# rm -rf sqlite-autoconf-3270200
-
-
#检查版本
-
## 最新安装的sqlite3版本
-
[root@djangoServer ~]# /usr/local/bin/sqlite3 --version
-
3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
-
[root@djangoServer ~]#
-
-
## Centos7自带的sqlite3版本
-
[root@djangoServer ~]# /usr/bin/sqlite3 --version
-
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
-
[root@djangoServer ~]#
-
-
## 可以看到sqlite3的版本还是旧版本,那么需要更新一下。
-
[root@djangoServer ~]# sqlite3 --version
-
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
-
[root@djangoServer ~]#
-
-
## 更改旧的sqlite3
-
[root@djangoServer ~]# mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
-
-
## 软链接将新的sqlite3设置到/usr/bin目录下
-
[root@djangoServer ~]# ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
-
-
## 查看当前全局sqlite3的版本
-
[root@djangoServer ~]# sqlite3 --version
-
3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
-
[root@djangoServer ~]#
-
-
#将路径传递给共享库
-
# 设置开机自启动执行,可以将下面的export语句写入 ~/.bashrc 文件中,如果如果你想立即生效,可以执行source 〜/.bashrc 将在每次启动终端时执行
-
[root@djangoServer ~]# export LD_LIBRARY_PATH="/usr/local/lib"
-
-
#检查Python的SQLite3版本
-
[root@djangoServer ~]# ipython3
-
Python 3.7.1 (default, May 3 2019, 09:55:04)
-
Type 'copyright', 'credits' or 'license' for more information
-
IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.
-
-
In [1]: import sqlite3
-
-
In [2]: sqlite3.sqlite_version
-
Out[2]: '3.27.2'
-
-
In [3]: exit
-
[root@djangoServer ~]#
-
-
#启动开发服务器
-
[root@djangoServer ~]# cd /work/
-
[root@djangoServer work]# ls
-
db.sqlite3 manage.py polls test_django
-
[root@djangoServer work]# python3 manage.py runserver
结果:
这里运行的时候需要输入python3 manage.py runserver
测试成功没有:
在打开一个终端连接阿里云,输入curl http://127.0.0.1:8000可以看到源代码就说明ok了。
测试从公网访问:【配置Nginx 的反向代理】
部署指南:https://www.alibabacloud.com/zh/getting-started/projects?spm=a2796.8276177.1200651.4.76a06a7dEoReSg
宝塔面板中:添加如下server{}
-
server
-
{
-
listen 80;
-
server_name 你服务器的公网ip;
-
rewrite ^/$ / break;
-
location /
-
{
-
proxy_pass http://127.0.0.1:8000;
-
}
-
}
然后保存并重启或重载配置:
然后启动你的django服务器:
说一句:部署肯定要上传项目,可以不用打包。使用xftp6软件就可以将项目传到阿里云主机
Django部署指南:看这一篇就够了:
本博2017年4月开始自学,到20年2月已自学3年,不仅仅python,目前已经全栈WEB开发,全自动A股交易,深度学习也初步涉猎,这句话改于2020年2月16日。计划学习10年,40岁学成精英,如若不到,继续学习,终身保持学习状态。30岁之前看不惯社会天天抱怨,30岁突然醒悟,错全在自己身上,跟社会没有任何关系,故开始随时保持学习状态,向梦想冲刺。