專案部署錯誤:FileNotFoundError: [Errno 2] No such file or directory: 'manage.py'
阿新 • • 發佈:2018-12-12
1.問題描述
在伺服器上部署Django專案時,在配置好虛擬環境、資料庫等操作,在專案目錄下執行執行伺服器命令時:
python3 manage.py runserver 0.0.0.0:8000
報錯:
FileNotFoundError: [Errno 2] No such file or directory: 'manage.py'
2.問題分析
查詢了網上的多中說法,多是說命令沒有在專案檔案(即manage.py所在資料夾)下執行。但實際情況,我的命令確實是將目錄切換到專案資料夾中執行的。否則也不將資料庫的表建成功。
python3 manage.py makemigrations python3 manage.py migrate
以上兩個命令都執行成功。
所以問題應該不是這個,所以繼續找原因,發現以下兩點:
伺服器中存放專案的檔名,需要與本地實際執行的檔名一致。因為django專案生成時,是以這個根檔名,定義了一些變數或引數的;
在manage.py檔案的標頭檔案註釋中,本地和伺服器的虛擬環境可能配置的不一樣,所以需要針對伺服器的虛擬地址進行修改。
舉例說明:
# 本地manage.py檔案的第一行程式碼是:
#!/usr/bin/env/python3
# 伺服器manage.py檔案的第一行程式碼應修改為:
#!/root/.virtualenvs/django_01/bin/python3
這樣再執行python3 manage.py runserver 0.0.0.0:8000