Django 1.4 Неизвестная команда: 'runningerver'

Что-то в моем пути python должно быть изменено, потому что теперь я не могу запустить.

python app/manage.py runserver

Выход, который я получаю,

Unknown command: 'runserver'
Type 'manage.py help' for usage.

Я просмотрел переменные PYTHONPATH и PATH в моей среде, но я не могу понять, почему он не работает.

Ответ 1

Я нашел ответ на свой вопрос.

  • Если у вас есть ошибка в ваших настройках, manage.py проглотит исключение и сообщит, как будто команда не существует.
  • Это привело меня к неправильному допущению, что мой путь к python или среда venv были испорчены.

Если вы хотите диагностировать эту проблему, запустите...

python app/manage.py help

... и он покажет исключение. Это, конечно, было тем, что было рекомендовано оболочкой django после того, как он сказал мне, что команда не найдена.

Это явно ошибка в Django 1.4. Мне кажется, исключение должно быть сообщено независимо от того, какую команду управления вы выполняете.

Ответ 2

Просматривая код manager.py и django.core.management, я могу придумать некоторые предложения.

Сначала проверьте, существует ли файл <some_path>/django/core/management/commands/runserver.py.

Во-вторых, запустите:

>>> import sys
>>> sys.path

Если вышеупомянутый <some_path> отсутствует в этом списке, вы должны установить переменную PYTHONPATH.

В-третьих, (и это самый длинный из всех снимков), если вы изменили DEFAULT_PORT на runserver, попробуйте изменить его на 8000.

Ответ 3

Я согласился с ОП. Я встретил ту же проблему, и она оказалась ошибкой в ​​settings.py:
В settings.py я использую os.environ[something], и эти переменные среды загружаются в apache start script. Если я запустил manage.py из командной строки, он не знает, что такое os.environ[something], поэтому возникает ошибка.

Итак, для всех, кто ищет решение, рекомендуем проверить разницу обстоятельств между запуском проекта django и чистым manage.py, возможно, вы обнаружите, что не так.

Ответ 4

Я добавлю свой ответ на ту же проблему, что и у меня. Это было не связано с версией Django, но в старом экземпляре моего проекта я предоставлял свою собственную копию Django, а не установку из pip. Позже я решил использовать установленный Django.

Когда я вытащил изменения на сервере, моя копия файлов Django была удалена, но не .pyc файлы. manage.py по-прежнему будет импортировать старые .pyc файлы, в результате чего импорт прерывается на полпути, а ошибка будет такой же "Неизвестная команда: runningerver".

Естественно, что полное удаление папки с файлами .pyc устранило проблему.