1. 程式人生 > >專案部署錯誤:FileNotFoundError: [Errno 2] No such file or directory: 'manage.py'

專案部署錯誤:FileNotFoundError: [Errno 2] No such file or directory: 'manage.py'

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

命令,伺服器就可以正常啟動了。

參考文章:
https://stackoverflow.com/questions/12252198/error-no-such-file-or-directory-when-running-django-manage-py