Джанго: не может запускать пользовательские команды - PullRequest
9 голосов
/ 28 ноября 2010

Я написал простую пользовательскую команду, 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'

  • Я поместил его в каталог управления / команд под моим приложением.
  • Я добавил файлы __init__.py в каталог управления и команд.
  • I 'я проверил, что мое приложение находится в INSTALLED_APPS в settings.py
  • Я пытался установить его в разных приложениях и в корне проекта тоже

Запуск Python manage.py syncdb и т. д,И если я наберу python в командной строке, я могу импортировать django.core.management ok.

Я знаю, что упускаю что-то очевидное, но не могу понять, что.

Как можноЯ отлаживаю это, чтобы понять, почему моя настраиваемая команда не запускается?

Ответы [ 2 ]

6 голосов
/ 28 ноября 2010

Проблема заключалась в том, что у меня был другой проект на PYTHONPATH.D'о!Я думаю, что он сначала собирал файл settings.py, поэтому не видел мое приложение.То, что указало мне в этом направлении, было то, что я попытался запустить python manage.py create_jobs myapp (из расширений команды django), и он вернул ошибку, указывающую, что приложение не может быть найдено.Также @knutin упомянул INSTALLED_APPS.

0 голосов
/ 17 мая 2014

Это потому, что __init__.pyc не создается автоматически в папках «management» и «command». Скопируйте your_app/__init__.py и your_app/__init__.pyc и вставьте его в папку управления / и командам /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...