Django:无法运行自定义命令

时间:2010-11-28 10:31:13

标签: python django

我写了一个简单的自定义命令,hello.py:

from django.core.management.base import NoArgsCommand

class Command(NoArgsCommand):
    help = "prints hello world"

    def handle_noargs(self, **options):
        print "Hello, World!"

当我运行python manage.py时,它返回

未知命令:'hello'

  • 我把它放在我的应用程序下面的管理/命令目录中。
  • 我已将__init__.py文件添加到管理和命令目录。
  • 我已经在settings.py
  • 中检查了我的应用是否已安装在INSTALLED_APPS中
  • 我已经尝试在不同的应用程序和项目根目录中安装它

运行python manage.py syncdb等没问题。如果我在命令行输入python,我可以导入django.core.management ok。

我知道我遗漏了一些显而易见的东西,但无法弄清楚是什么。

我如何调试它以解决为什么我的自定义命令不会运行?

2 个答案:

答案 0 :(得分:6)

问题是我在PYTHONPATH上有另一个项目。 D'哦!我认为它首先从那里拿起settings.py所以没有看到我的应用程序。我指向这个方向的是我尝试运行python manage.py create_jobs myapp(来自django命令扩展),它返回一个错误,指示无法找到应用程序。另外@knutin提到了INSTALLED_APPS。

答案 1 :(得分:-1)

这是因为__init__.pyc并未在"管理中自动创建"和"命令"夹。 复制your_app/__init__.pyyour_app/__init__.pyc并将其粘贴到management /和commands /文件夹中。