Я пытаюсь перенести приложение, которое я запускал локально, на 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.