1. 程式人生 > 其它 >Django環境搭建過程記錄

Django環境搭建過程記錄

技術標籤:問題記錄pythoncentosdjango

Django環境搭建

直接使用pip安裝django,安裝後要在環境變數中新增python安裝位置下的

Python\Python38-32\Scripts
Python\Python38-32\Lib\site-packages\django

這樣後面才能使用django的管理程式django-admin. py/django-admin

其他操作可以參考django

發現django支援熱過載,也算是和js差不多了

Django在linux環境下啟動遇到的問題

在windows中修改好環境變數即可使用Django,但在centos啟動時遇到sqlite版本不匹配的問題,使用更新sqlite的方式進行修復。

centos中預設自帶的sqlite版本為3.7.17,在使用最新版本django3.1.2時,由於需要的sqlite版本過低會導致.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).的問題,在設定中需要更新本地版本的sqlite,可以在sqlite官網下載響應的檔案到linux伺服器,安裝更新即可
該安裝包可以在官網找到SQLite,找到最新版本的gz檔案並獲取下載連結,在linux中執行以下命令

wget https://www.sqlite.org/2020/sqlite-autoconf-3330000.tar.gz         //下載的為當前最新的版本,不必按照這個也行
tar -zxvf sqlite-autoconf-3330000.tar.gz                        //解壓下載的問題
cd sqlite-autoconf-3330000                                      //跳轉到解壓的目錄

./configure                                                     //執行配置軟體
make                                    
make install                                                    //安裝

cp sqlite3 /usr/bin/sqlite3                                     //將sqlite-autoconf-3330000 資料夾下則sqlite3覆蓋到系統的sqlite位置
sqlite3 -version                                                //檢視當前的sqlite版本

參考CentOS 升級sqlite3
一般到這裡就結束了,但是在啟動django時依舊報那個錯誤,多次檢視系統版本,發現的確是更新了,在網上有人指出是不是python3中的sqlite版本沒有更新,通過以下指令

>>> import sqlite3
>>> sqlite3.sqlite_version
'3.1.0'

發現還是舊版本,之後發現其他人在安裝好系統sqlite後還配置了自動指令碼,他們在linux系統的~/.bashrc中進行了修改,最後如下

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export LD_LIBRARY_PATH="/usr/local/lib"

其實就是增加了export LD_LIBRARY_PATH="/usr/local/lib這一行,在查詢資料後,發現是把/usr/local/lib作為庫包檔案的查詢備用路徑,網路上的解釋是

當執行函式動態連結.so時,如果此檔案不在預設目錄下'/lib' and '/usr/lib'.

那麼就需要指定環境變數LD_LIBRARY_PATH

也就是手動添加了一個環境變數,和win類似,缺省了就到該路徑下查詢,實際上export指令可以直接在命令列上執行一次,也有一樣的效果,但export只在當前的登入有效,也就是切換使用者或者重啟的時候就又要再來一次,所以將該指令解除安裝~/.bashrc裡面,該檔案的為初始化檔案,每次登入都將執行,所以就避免了手動輸入的問題,此時在python中測試sqlite版本就沒問題了,再次回到django-project/HelloWorld位置,執行python3 manage.py runserver 0.0.0.0:8000,頁面將正常顯示,如果出現

執行django專案出現Invalid HTTP_HOST header: '192.168.1.111:8000'. You may need to add '192.168.1.111' to ALLOWED_HOSTS

則在專案的setting.py檔案中,找到ALLOWED_HOSTS = [’*’] #在這裡請求的host添加了*

參考

Centos7 虛擬環境安裝Django 出現ImproperlyConfigured(‘SQLite 3.8.3 or later is required (found %s).’ %Database.sqlite_version)錯誤

LD_LIBRARY_PATH

設定 Linux 的 LD_LIBRARY_PATH 變數