2010-11-28 3 views
8

Я написал простой пользовательскую команду, hello.py:Джанго: Не удается запустить пользовательские команды

from django.core.management.base import NoArgsCommand 

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

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

Когда я бегу питона manage.py привет он возвращает

Неизвестная команда: «привет '

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

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

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

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

+1

«Проверено, что мое приложение находится в settings.py», вы имеете в виду, что оно находится в INSTALLED_APPS? – knutin 2010-11-28 10:37:51

+0

У вас есть несколько версий/установок Python в вашей системе? «какой python» расскажет вам, какую версию python вы используете при запуске «python manage.py», запуск «env python» запустит питон, который начнет запускать «./manage.py». Это одна и та же версия? – knutin 2010-11-28 10:39:46

ответ

6

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

0

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

Смежные вопросы