Придумали следующее решение:
Получите django 1.1 и поместите его в корневой каталог своего проекта.
Добавьте пустой файл "non_gae_indicator" в корневую папку вашего проекта.
Добавьте django и non_gae_indicator в ваш app.yaml элемент skip_files:
skip_files:
- ^(.*/)?app\.yaml
- ^(.*/)?app\.yml
- ^(.*/)?index\.yaml
- ^(.*/)?index\.yml
- ^(.*/)?#.*#
- ^(.*/)?.*~
- ^(.*/)?.*\.py[co]
- ^(.*/)?.*/RCS/.*
- ^(.*/)?\..*
- ^(.*/)?.*\.bak$
- ^django
- ^non_gae_indicator
Теперь у нас есть способ узнать, работаем ли мы под GAE-sdk или вживую - поскольку non_gae_indicator не будет доступен, когда мы живы.
Так что в main.py вы можете сделать:
if not os.path.exists(os.path.abspath(os.path.dirname(__file__)) + '/non_gae_indicator'):
# GAE
from google.appengine.dist import use_library
use_library('django', '1.1')
else:
# Not GAE - Add our django package to the path
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)) + '/django')
Вы должны запустить свой локальный сервер SDK с флагом --allow_skipped_files (иначе пропущенные файлы будут казаться несуществующими при их проверке - консоль сервера выдает предупреждение об этом).