2013-02-14 118 views
11

我的python路徑中的某些內容必須更改,因爲現在我無法運行。Django 1.4未知命令:'runserver'

python app/manage.py runserver 

我得到的輸出是

Unknown command: 'runserver' 
Type 'manage.py help' for usage. 

我看了我的環境中的PYTHONPATH和PATH變量,但我想不通爲什麼它沒有運行。

+0

這確實是最離奇的。你在使用什麼操作系統?我很想暗示重新安裝django。 – 2013-02-14 22:41:09

+0

嘗試創建一個新的空Django項目或環境+項目來本地化破損? – millimoose 2013-02-14 22:44:30

+7

「python app/manage.py help」輸出的內容是什麼? – fsw 2013-02-14 22:46:14

回答

18

我找到了我的問題的答案。

  • 如果在設置中出現錯誤,manage.py會吞噬異常並報告,就好像該命令不存在一樣。
  • 這導致我錯誤地假設我的Python路徑或venv環境被搞砸了。

如果要診斷此問題,運行...

python app/manage.py help 

...,它會顯示異常。當然,這是django shell在告訴我沒有找到命令後推薦的。

這顯然是Django 1.4中的一個bug。在我看來,無論您運行什麼管理命令,都應該報告異常。

+1

您也可以使用'./manage.py check'來顯示否則被抑制的錯誤。 – Nimo 2014-01-11 01:22:50

+0

謝謝:)這也幫助了我! – 2015-01-05 05:23:11

+0

對於Django 1.4'./manage.py check'將不起作用。您應該使用'./manage.py validate'來代替。 https://docs.djangoproject.com/en/1.4/ref/django-admin/#validate – Zemogle 2015-04-16 09:25:02

1

翻翻manager.py代碼和django.core.management我可以想出一些建議。

首先,檢查文件<some_path>/django/core/management/commands/runserver.py是否存在。

二,運行:

>>> import sys 
>>> sys.path 

如果上述<some_path>不在這個名單比你必須設置PYTHONPATH變量。

第三,(如果您已更改DEFAULT_PORTrunserver,請嘗試將其更改回8000,(並且這是所有鏡頭中最長的)。

0

我同意OP。我遇到了同樣的問題,並且原來是settings.py中的一個錯誤:
在settings.py中,我使用os.environ[something],並且這些環境變量是在apache啓動腳本中加載的。如果我從命令行運行manage.py,它不知道什麼是os.environ[something],從而發生錯誤。

因此,對於任何人在這裏尋找解決方案,建議檢查環境差異運行django項目和純manage.py,也許你會發現什麼是錯的。

0

我會添加我的答案,我有同樣的問題。這與Django版本無關,但在我的項目的舊實例中,我提供了自己的Django副本,而不是從pip安裝。後來我決定用Pip安裝Django。

當我拉動服務器上的更改時,我的repo的Django文件副本被刪除,但沒有.pyc文件。manage.py仍然會導入舊的.pyc文件,導致導入中途失敗,並且錯誤是相同的「未知命令:runserver」。

當然,完全刪除帶有.pyc文件的文件夾可以解決問題。