解決 centerOS7部署ajango2.2.x版本 報SQLite 3.8.3 or later is required (found 3.7.17).錯誤


在CentOS7上部署Django的時候,遇到了一些問題,寫篇筆記記錄解決過程。

報錯信息

python3 manage.py runserver啟動django項目的時候,就會出現報錯信息如下:
raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

這是因為centos 默認的版本為3.7.17,並沒有更新,我們只需要安裝新的SQLite代替老版本就可以了。可以去搜索sqlite官網去下載源碼。

 

查看系統的sqlte3的版本

1 [root@djangoServer work]# sqlite3 --version 
2 3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
3 [root@djangoServer work]# 


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.6.8 (default, Aug  7 2019, 17:28:10) 
61 [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
62 Type "help", "copyright", "credits" or "license" for more information.
63 >>> import sqlite3
64 >>> sqlite3.sqlite_version   
65 '3.27.2'
66 >>> exit()                                                            
67 [root@djangoServer ~]# 
68 
69 #啟動開發服務器
70 [root@djangoServer ~]# cd /work/
71 [root@djangoServer work]# ls
72 db.sqlite3  manage.py  polls  test_django
73 [root@djangoServer work]# python3 manage.py runserver
74 Watching for file changes with StatReloader
75 Performing system checks...
76 
77 System check identified no issues (0 silenced).
78 May 03, 2019 - 21:32:28
79 Django version 2.2.1, using settings 'test_django.settings'
80 Starting development server at http://127.0.0.1:8000/
81 Quit the server with CONTROL-C.

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM