我正在尝试将一个在本地运行的应用程序移植到GAE。该应用程序使用了Bottle.py框架。我用烧杯来管理会话。我有点糊涂,很难把烧杯正确地进口。非常感谢您的帮助。
我在MacOSX10.6.7下使用GoogleAppEngineLauncher.app运行移植的应用程序。这个应用程序在我的机器上的模拟环境中运行,而不是在谷歌的服务器上。
对于我的GAE端口,我将Bottle.py放在一个名为“framework”的目录中。此目录有一个空的__init__.py
文件。瓶子工作良好,可以服务'你好世界'。
烧杯存在于我的应用程序(日记/烧杯)的根目录中。烧杯也有一个空的__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中所有内容的权限,以确保它们是可执行的。
按原样运行烧杯,并重新编写所有导入语句,以便:
从烧杯.x导入y
成为:
from x import y
添加了'pkg_resources.py',它不在GAE使用的Python版本的标准库中。
最佳答案
SessionMiddleware位于middleware.py中。尝试:
from beaker.middleware import SessionMiddleware
关于python - 让烧杯与GAE合作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7224870/