我写了一个简单的自定义命令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 回答
问题是我在PYTHONPATH上有另一个项目 . D'哦!我认为它首先从那里拿起settings.py所以没有看到我的应用程序 . 我指向这个方向的是我尝试运行python manage.py create_jobs myapp(来自django命令扩展),它返回一个错误,指示无法找到应用程序 . 另外@knutin提到了INSTALLED_APPS .
这是因为
__init__.pyc
不会在"management"和"commands"文件夹中自动创建 . 复制your_app/__init__.py
和your_app/__init__.pyc
并将其粘贴到management /和commands /文件夹中 .