1. 程式人生 > 實用技巧 >linux部署django啟動專案報錯誤

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了;(看了一天才解決,整合文件,有借鑑別人的,還好解決了,記錄一下)