zoukankan      html  css  js  c++  java
  • linux部署django启动项目报错误

    启动后报以下错误:

     以上原因有可能是你sqlite版本问题,可以上级版本:如下:

    1、先下载、编译、安装SQLite引擎

    SQLite官网的下载页面:https://sqlite.org/download.html 这里是最新的版本,我们就安装它吧。
    源码有两个文件,我们下第二个(sqlite-autoconf-3280000.tar.gz),因为这个有配置文件。复制其链接,然后在终端执行:

    wget https://sqlite.org/2019/sqlite-autoconf-3280000.tar.gz
    tar zxvf sqlite-autoconf-3280000.tar.gz
    cd sqlite-autoconf-3280000
    ./configure
    make && make install

    以默认方式安装后,会把编译好的二进制文件安装到/usr/local/lib, 把头文件sqlite3.h sqlite3ext.h安装到/usr/local/include,我们需要知道这两个路径。

    2、下载、编译、安装Python

    请先照此文的方法做: https://e2c.net/2019/03/17/61.html
    唯一的区别是,在编译时略有不同。
    原来的编译过程:

    cd /usr/local/python-3.7/
    ./configure --prefix=/usr/local/sbin/python-3.7
    make && make install

    修改为:

    cd /usr/local/python-3.7/
    LD_RUN_PATH=/usr/local/lib ./configure LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" --prefix=/usr/local/sbin/python-3.7
    LD_RUN_PATH=/usr/local/lib make
    make && make install

    照此安装后,已经可以使用最新版SQLite了:

    Python 3.7.0 (default, Jun 21 2019, 07:31:39)
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sqlite3
    >>> sqlite3.sqlite_version
    '3.28.0'
                                                                                                                                                                                                                    >>> exit()
     
     
     
     
     
    如果更新版本无效的话只能降低django版本或者不依赖系统提供的sqlite3 使用 pysqlite3pysqlite3-binary 库来操作。首先需要安装这两个库:(我使用的第二个,然后只安装了pysqlite3pysqlite3-binary这个安装找不到所以就没有安装(不知道后面会不会受影响))
    pip3 install pysqlite3
    
    pip3 install pysqlite3-binary
    

    修改db代码导入库

    vi /usr/local/python3/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py
    # 修改内容
    # from sqlite3 import dbapi2 as Database (注释掉这段)
    from pysqlite3 import dbapi2 as Database # 启用pysqlite3
    # :wq 保存即可

    然后启动出现一下界面,有报错可以执行途中的迁移命令在运行:
    这样就ok了;(看了一天才解决,整合文档,有借鉴别人的,还好解决了,记录一下)
  • 相关阅读:
    random模块的随机变换
    re模块与正则表达式进阶
    面向对象整体细化
    __new__内部工作方式
    前端之CSS
    前端之HTML
    数据库
    同步异步阻塞非阻塞
    进程间的通信
    day 36(多进程)
  • 原文地址:https://www.cnblogs.com/smilevv/p/14143998.html
Copyright © 2011-2022 走看看