Получение мензурки с GAE - PullRequest
       16

Получение мензурки с GAE

3 голосов
/ 29 августа 2011

Я пытаюсь перенести приложение, которое я запускал локально, на GAE. Приложение использует фреймворк Bottle.py. Я использую стакан для управления сессиями. Я немного новичок, и у меня возникают проблемы с правильным импортом стакана. Помощь очень ценится.

Я запускаю портированное приложение, используя GoogleAppEngineLauncher.app под Mac OS X 10.6.7. Это запускает приложение в среде симуляции на моем компьютере, а не на серверах Google.

Для моего порта GAE я поместил Bottle.py в каталог, называемый framework. В этом каталоге есть пустой файл __init__.py. Бутылка работает нормально и может служить «Привет мир».

Beaker существует в своем собственном каталоге в корне моего приложения (journal / beaker). Стакан также имеет пустой __init__.py.

Соответствующий код:

from framework import bottle
from beaker import SessionMiddleware
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

@bottle.route('/')
def index():
    return "hello, world"

def main():
    bottle.debug(True)
    run_wsgi_app(bottle.default_app())

if __name__ == '__main__':
    main()

Я получаю сообщение об ошибке, подобное этому:

File "/Users/mscantland/code/journal/main.py", line 19, in <module>
    from beaker import SessionMiddleware
ImportError: cannot import name SessionMiddleware

Вот что я пытался заставить это работать до сих пор:

  • Проверены разрешения на все в / beaker, чтобы убедиться, что они были исполняемыми.

  • Запустил стакан как есть, а также переписал все операторы импорта так, чтобы:

    из beaker.x import y

стали:

from x import y
  • Добавлен pkg_resources.py, которого нет в стандартной библиотеке для Python-версии, используемой GAE.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2011

Я ответил на мой вопрос, снова подойдя к проблеме с веб-приложением и службой пользователей Google, которая имеет лучшую документацию для работы с GAE.

0 голосов
/ 29 августа 2011

SessionMiddleware находится в middleware.py. Попробуйте:

from beaker.middleware import SessionMiddleware
...