Я пытаюсь получить приложение Django 1.5 Hello World, работающее с Google App Engine. Все работает отлично если моя структура каталогов выглядит так:Google App Engine + Django с несколькими приложениями в проекте = ImportError
.
| ____myproj
| |______init__.py
| |____app.yaml
| |____settings.py
| |____urls.py
| |____views.py
| |____wsgi.py
|____manage.py
Однако, как только я добавить новое «приложение» к проекту (с использованием manage.py startapp app1
), я начинаю получать ImportErrors.
Это идеальная структура Я хочу:
.
|____app1
| |______init__.py
| |____admin.py
| |____models.py
| |____tests.py
| |____views.py
|____myproj
| |______init__.py
| |____app.yaml
| |____settings.py
| |____urls.py
| |____views.py
| |____wsgi.py
|____manage.py
Чтобы включить "APP1", я модифицировать INSTALLED_APPS в моем settings.py к:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1',
)
Обратите внимание, я добавил "APP1" в INSTALLED_APPS. Как только я это сделаю, GAE начинает жаловаться: ImportError: Нет модуля с именем app1.
Что я делаю неправильно? Если я попытаюсь запустить приложение с чистым Django (не AppEngine), все будет в порядке. Но если я попытаюсь запустить его с помощью AppEngine, мне не понравится, что «app1» я добавил в свой INSTALLED_APPS. Удаление этой строки из INSTALLED_APPS заставляет все работать снова без ошибок в AppEngine!
Примечание: у моего PYTHONPATH есть «/ Users/mel/Sites/myproj/myproj», за которым следуют все стандартные пути движка Google.
Это именно то, как организован мой каталог. Я думаю, вы неправильно истолковали структуру в моем вопросе. – melsam
@melsam Я так не думаю. Ваша папка приложения не будет жить рядом с вашим файлом 'manage.py' и вместо этого будет находиться рядом с вашим файлом' settings.py'. Если это неверно, вы должны исправить отступы в своем вопросе (или сгенерировать макет с помощью 'tree', чтобы он стал более понятным). –
@melsa Чтобы быть яснее: 'app1' должно быть * рядом * с' myproject', а не под ним. –