Django:无法运行自定义命令

问题描述 投票:0回答:3

我写了一个简单的自定义命令,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.pysyncdb 等就可以了。如果我在命令行输入 python,我可以导入 django.core.management ok。

我知道我错过了一些明显的东西,但无法弄清楚是什么。

如何调试它以找出为什么我的自定义命令无法运行?

python django
3个回答
8
投票

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


0
投票

要解决此问题:我将管理文件夹在文件夹树中上移一级。换句话说,与 settings.py 在同一文件夹中


-2
投票

这是因为

__init__.pyc
不会在“管理”和“命令”文件夹中自动创建。 复制
your_app/__init__.py
your_app/__init__.pyc
并将其粘贴到 Management/ 和 Commands/ 文件夹中。

© www.soinside.com 2019 - 2024. All rights reserved.