Django не может найти приложение с manage.py syncdb

я использую Mac OS X 10.7, и я успешно создал проект в django, используя django-admin.py startproject MyBlog. В этой папке у меня есть manage.py, еще одна папка под названием MyBlog и папка приложения, которую я создал, под названием MainBlog.

Мне нужно было добавить этот модуль и модуль taggit в мою папку settings.py, что я и сделал (вероятно, неправильно).

Вот..

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
'MainBlog.taggit',
'MainBlog',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)

я тоже пробовал

'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
'MainBlog.taggit',
'MyBlog.MainBlog',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)

Ни один из них не работает. Все они возвращают эту ошибку...

Error: No module named MainBlog

Любая помощь будет принята с благодарностью. Я боролся с этим часами!


person user1074202    schedule 02.08.2012    source источник
comment
MainBlog.taggit тоже выдает ошибку? Обычно я просто добавляю appName в INSTALLED_APPS и все работает. Вы пробовали только 'MyBlog'   -  person Benoir    schedule 03.08.2012
comment
Как вы создали свое приложение? Вы запускали python manage.py startapp MainBlog или просто создали папку MainBlog?   -  person Cypress Frankenfeld    schedule 03.08.2012


Ответы (1)


Ошибка, которую вы получаете, связана с тем, что django не распознает ваше приложение MainBlog как пакет python.

Модули Django — это просто пакеты Python. Вам нужен файл __init__.py в каталоге вашего приложения (MainBlog), чтобы django его распознал. См. Для чего нужен __init__.py?

Есть два способа исправить это.

1) Инициализируйте свое приложение с помощью скрипта django (рекомендуется)

python manage.py startapp MainBlog MainBlog

Команда startapp задокументирована на веб-сайте django. Это создаст несколько файлов в вашей папке MainBlog для начала:

MainBlog/
    __init__.py
    models.py
    tests.py
    views.py

2) Вручную добавьте файл __init__.py в каталог MainBlog.

touch MainBlog/__init__.py
person Cypress Frankenfeld    schedule 02.08.2012
comment
Потрясающий! Большое спасибо, это сработало. Хотя теперь он вызывает ошибку, нет модуля с именем taggit. Нужно ли мне поместить еще один файл init.py в папку django-taggit, возможно, в MyBlog? Заранее спасибо! - person user1074202; 03.08.2012
comment
Убедитесь, что вы следуете инструкциям по установке django-taggit: django-taggit.readthedocs. org/en/latest/getting_started.html pip install django-taggit Затем добавьте 'taggit' к настройке INSTALLED_APPS. - person Cypress Frankenfeld; 03.08.2012
comment
Хм. почему-то до сих пор не находит. Я установил его правильно, и он у меня есть как «taggit» в моих установленных приложениях, но он по-прежнему не дает результатов. Моя папка такая.. MyBlog,MainBlog,build,djanggo-taggit это правильно? Это место, где pip установил его по умолчанию. - person user1074202; 04.08.2012