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 时,它返回了
未知命令:'hello'
- 我把它放在了我的应用下的 management/commands 目录里。
- 我在 management 和 commands 目录里添加了 __init__.py 文件。
- 我检查了我的应用是否在 settings.py 的 INSTALLED_APPS 里。
- 我还尝试在不同的应用和项目根目录下安装它。
运行 python manage.py syncdb 等命令是没问题的。而且如果我在命令行输入 python,我可以正常导入 django.core.management。
我知道我肯定漏掉了什么明显的东西,但就是想不起来是什么。
我该怎么调试,找出为什么我的自定义命令无法运行呢?
2 个回答
-1
这是因为在“management”和“commands”文件夹里,__init__.pyc
文件不会自动生成。你需要把 your_app/__init__.py
和 your_app/__init__.pyc
这两个文件复制,然后粘贴到 management/ 和 commands/ 文件夹里。
8
问题是我在PYTHONPATH里有另一个项目。哎呀!我觉得它首先找到了那个项目里的settings.py,所以没有看到我的应用。让我想到这个方向的是,我尝试运行命令python manage.py create_jobs myapp(这是django命令扩展的一部分),结果返回了一个错误,提示找不到这个应用。另外,@knutin也提到了INSTALLED_APPS。