2013-02-14 121 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文件的文件夹可以解决问题。