Невозможно запустить приложение django - PullRequest
8 голосов
/ 11 августа 2011

Я новичок в Джанго и каждый раз пытаюсь бежать python panel/manage.py startapp %app% (панель - это мой проект) выдает ошибку:

Error: '%app%' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name.

Я что-то не так делаю?

Неужели компании, контакты или статистика - это не название существующего модуля Python?

Ответы [ 12 ]

11 голосов
/ 13 апреля 2012

Это забавно - ваш проект и ваше приложение должны иметь разные имена. Вы, вероятно, создали проект, а затем попытались запустить с тем же именем.

10 голосов
/ 21 сентября 2013

Я тоже был в замешательстве, пока не понял, что проект Django - это контейнер для приложений;эта последовательность делает ее немного понятнее:

# first create a Project (container).
django-admin.py startproject Project

# create multiple apps
cd Project
python manage.py startapp polls
python manage.py startapp hello
...
7 голосов
/ 11 августа 2011

Возможно, вам нужно

cd panel
python manage.py startapp yourappname

Я не уверен, что запуск команды из каталога над вашим проектом будет работать правильно.

2 голосов
/ 02 июля 2014

Полагаю, возможно, вы уже создали каталог приложения в панели dir вручную. Команда 'startapp' предназначена для автоматического создания приложения. Если он у вас уже есть, он не работает.

2 голосов
/ 23 июля 2012

Это сообщение отображается, если вы дважды запускаете «startapp» с одним и тем же именем приложения.Как указывалось выше, OP не перезагружает приложение, оно создает его.

1 голос
/ 25 марта 2016

Это процесс, как я понял мои сомнения.

Сначала я создал каталог внутри своего каталога проекта и поместил __init__.py, models.py, admin.py, apps.py & views.py.

Затем я запустил python manage.py runserver & Это хорошо работает.

Тогда, как предложено на этой странице, я использовал команду startapp. Я получил эту ошибку:

CommandError: 'ucportal' conflicts with the name of an existing Python 
module and cannot be used as an app name. Please try another name.

После этого я удалил этот каталог и выполнил команду startapp с тем же именем, и она работала нормально.

Таким образом, команда «startapp» предназначена для автоматического создания приложения. Если он у вас уже есть, он не работает.

Ответ, данный @DAG, сработал для меня.

1 голос
/ 06 декабря 2015

У меня была такая же проблема, потому что я пытался «перезапустить» мое приложение после внесения изменений, но startapp предназначено для однократного использования для создания нового приложения.Чтобы просмотреть изменения, синхронизируйте приложение с БД с python manage.py migrate и перезапустите сервер с python manage.py runserver.

Из django-admin документов

(manage.py делает то же самое, что и django-admin)

startapp <app_label> [destination]

django-admin startapp

Создает структуру каталогов приложения Django для данного имени приложения в текущем каталоге или заданном месте назначения.

По умолчанию созданный каталог содержит файл models.py и другие файлы шаблонов приложения.(Для получения дополнительной информации см. Источник.) Если указано только имя приложения, каталог приложения будет создан в текущем рабочем каталоге.

Если указан необязательный пункт назначения, Django будет использовать этот существующий каталог, а несоздавая новый.Ты можешь использовать '.'для обозначения текущего рабочего каталога.

Например:

django-admin startapp myapp /Users/jezdez/Code/myapp

1 голос
/ 11 августа 2011

Попробуйте классический «mysite» или «myproject».Вы можете удалить его в любое время, так что если оно будет принято, тогда все ваши первоначальные идеи вступают в конфликт с модулями Python.

Редактировать: Я испробовал все ваши идеи, для меня не было ошибки.Итак, если вы установили вспомогательные библиотеки или модули для django, то некоторые из них могут содержать такие имена.

0 голосов
/ 14 апреля 2019

Я столкнулся с этой проблемой, пытаясь настроить проект Wagtail.

Перед созданием приложения я создал и активировал virtualenv (используя virtualenvwrapper) с тем же именем: $ APPNAME. Когда я тогда запустил wagtail start $APPNAME, Django ищет конфликты имен в $ PYTHONPATH, который в этом случае указывает на /Users/User/.virtualenvs.

Естественно, это приводит к конфликту, так как /Users/User/.virtualenvs/$APPNAME уже существует.

0 голосов
/ 19 марта 2019

Я воспроизвел проблему, и на самом деле что-то работает не так, как я ожидал.Интересно, не наткнулись ли мы на ошибку Джанго или на ограничение, которое я не понимаю?

Имея проект под названием "проект" и пустую папку app / newapp ... Я попробовал:

python manage.py startapp newapp apps/newapp

Возвращает:

CommandError: 'newapp' conflicts with the name of an existing Python module and cannot be used as an app name. Please try another name.

Но если я нацеливаюсь на ЛЮБОЙ другой маршрут, в котором последняя папка не называется с тем же именем, что и приложение, которое я запускаю, это работает.

В итоге я сделал:

python manage.py startapp newapp apps/main

Использование Django 2.1.3.

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