我正在尝试将一个在本地运行的应用程序移植到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/

10-10 19:43