问题描述:

在阿里云的自带centos上运行python manage.py runserver的时候报错:

django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).


解决方法1:给django降级

  1.  
    卸载django: pip uninstall django
  2.  
    安装低版本: 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库版本

  1.  
    #更新SQLite 3
  2.  
    #获取源代码(在主目录中运行)
  3.  
    [root@djangoServer ~]# cd ~
  4.  
    [root@djangoServer ~]# wget https://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz
  5.  
    [root@djangoServer ~]# tar -zxvf sqlite-autoconf-3270200.tar.gz
  6.  
     
  7.  
    #构建并安装
  8.  
    [root@djangoServer ~]# cd sqlite-autoconf-3270200
  9.  
    [root@djangoServer sqlite-autoconf-3270200]# ./configure --prefix=/usr/local
  10.  
    [root@djangoServer sqlite-autoconf-3270200]# make && make install
  11.  
    [root@djangoServer sqlite-autoconf-3270200]# find /usr/ -name sqlite3
  12.  
    /usr/bin/sqlite3
  13.  
    /usr/lib64/python2.7/sqlite3
  14.  
    /usr/local/bin/sqlite3
  15.  
    /usr/local/python3/lib/python3.7/site-packages/django/db/backends/sqlite3
  16.  
    /usr/local/python3/lib/python3.7/sqlite3
  17.  
    [root@djangoServer sqlite-autoconf-3270200]#
  18.  
     
  19.  
    #不必要的文件,目录删除
  20.  
    [root@djangoServer sqlite-autoconf-3270200]# cd ~
  21.  
    [root@djangoServer ~]# ls
  22.  
    anaconda-ks.cfg sqlite-autoconf-3270200 sqlite-autoconf-3270200.tar.gz
  23.  
    [root@djangoServer ~]#
  24.  
    [root@djangoServer ~]# rm -rf sqlite-autoconf-3270200.tar.gz
  25.  
    [root@djangoServer ~]# rm -rf sqlite-autoconf-3270200
  26.  
     
  27.  
    #检查版本
  28.  
    ## 最新安装的sqlite3版本
  29.  
    [root@djangoServer ~]# /usr/local/bin/sqlite3 --version
  30.  
    3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
  31.  
    [root@djangoServer ~]#
  32.  
     
  33.  
    ## Centos7自带的sqlite3版本
  34.  
    [root@djangoServer ~]# /usr/bin/sqlite3 --version
  35.  
    3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
  36.  
    [root@djangoServer ~]#
  37.  
     
  38.  
    ## 可以看到sqlite3的版本还是旧版本,那么需要更新一下。
  39.  
    [root@djangoServer ~]# sqlite3 --version
  40.  
    3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
  41.  
    [root@djangoServer ~]#
  42.  
     
  43.  
    ## 更改旧的sqlite3
  44.  
    [root@djangoServer ~]# mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
  45.  
     
  46.  
    ## 软链接将新的sqlite3设置到/usr/bin目录下
  47.  
    [root@djangoServer ~]# ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
  48.  
     
  49.  
    ## 查看当前全局sqlite3的版本
  50.  
    [root@djangoServer ~]# sqlite3 --version
  51.  
    3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0f6d7
  52.  
    [root@djangoServer ~]#
  53.  
     
  54.  
    #将路径传递给共享库
  55.  
    # 设置开机自启动执行,可以将下面的export语句写入 ~/.bashrc 文件中,如果如果你想立即生效,可以执行source 〜/.bashrc 将在每次启动终端时执行
  56.  
    [root@djangoServer ~]# export LD_LIBRARY_PATH="/usr/local/lib"
  57.  
     
  58.  
    #检查Python的SQLite3版本
  59.  
    [root@djangoServer ~]# ipython3
  60.  
    Python 3.7.1 (default, May 3 2019, 09:55:04)
  61.  
    Type 'copyright', 'credits' or 'license' for more information
  62.  
    IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.
  63.  
     
  64.  
    In [1]: import sqlite3
  65.  
     
  66.  
    In [2]: sqlite3.sqlite_version
  67.  
    Out[2]: '3.27.2'
  68.  
     
  69.  
    In [3]: exit
  70.  
    [root@djangoServer ~]#
  71.  
     
  72.  
    #启动开发服务器
  73.  
    [root@djangoServer ~]# cd /work/
  74.  
    [root@djangoServer work]# ls
  75.  
    db.sqlite3 manage.py polls test_django
  76.  
    [root@djangoServer work]# python3 manage.py runserver

 

结果:

这里运行的时候需要输入python3  manage.py runserver

测试成功没有:

在打开一个终端连接阿里云,输入curl http://127.0.0.1:8000可以看到源代码就说明ok了。


测试从公网访问:【配置Nginx 的反向代理】

好的教程:https://bbs.aliyun.com/read/176277.html?spm=5176.11065265.1996646101.searchclickresult.6acd7a12UIuJpr

部署指南:https://www.alibabacloud.com/zh/getting-started/projects?spm=a2796.8276177.1200651.4.76a06a7dEoReSg

宝塔面板中:添加如下server{}

  1.  
    server
  2.  
    {
  3.  
    listen 80;
  4.  
    server_name 你服务器的公网ip;
  5.  
    rewrite ^/$ / break;
  6.  
    location /
  7.  
    {
  8.  
    proxy_pass http://127.0.0.1:8000;
  9.  
    }
  10.  
    }

然后保存并重启或重载配置:

然后启动你的django服务器:

说一句:部署肯定要上传项目,可以不用打包。使用xftp6软件就可以将项目传到阿里云主机


Django部署指南:看这一篇就够了:

https://www.alibabacloud.com/zh/getting-started/projects/how-to-deploy-django-application-on-alibaba-cloud?spm=a2796.8276801.1196489.20.57a6656ctOCYkA

posted on 2021-01-11 11:24  专注于区块链开发  阅读(393)  评论(1编辑  收藏  举报