【问题标题】:Getting Beaker working with GAE让 Beaker 与 GAE 一起工作
【发布时间】:2011-11-05 16:40:45
【问题描述】:

我正在尝试将我在本地运行的应用程序移植到 GAE。该应用程序使用 Bottle.py 框架。我使用 Beaker 进行会话管理。我有点菜鸟,无法正确导入烧杯。非常感谢您的帮助。

我在 Mac OS X 10.6.7 下使用 GoogleAppEngineLauncher.app 运行移植的应用程序。这会在我的机器上的模拟环境中运行应用程序,而不是在 Google 的服务器上。

对于我的 GAE 端口,我已将 Bottle.py 放入名为“framework”的目录中。该目录有一个空的__init__.py 文件。瓶子工作正常,可以提供“你好世界”。

Beaker 存在于我的应用程序根目录(日志/烧杯)中自己的目录中。 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 中所有内容的权限以确保它们是可执行的。

  • 按原样运行烧杯,并重新编写所有导入语句,以便:

    从烧杯.x 导入 y

成为:

from x import y
  • 添加了“pkg_resources.py”,它不在 GAE 使用的 Python 版本的标准库中。

【问题讨论】:

  • 我在答案中使用烧杯,即from beaker.middleware import SessionMiddleware 将名为 beaker 的目录与我的 gae 应用程序位于同一目录中。烧杯会话有效,但我无法让它与模板一起使用,除非传递变量,即烧杯会话在 requiest.session 或类似的模板中不可用。

标签: python google-app-engine bottle beaker


【解决方案1】:

SessionMiddleware 在 middleware.py 中。试试:

from beaker.middleware import SessionMiddleware

【讨论】:

  • 谢谢,但我已经尝试过了,它解决了问题:文件“/Users/mscantland/code/journal/beaker/pkg_resources.py”,第 28 行,来自操作系统导入的 utime, rename, unlink, mkdir ImportError: cannot import name mkdir
  • 你的观点非常有效——你说 SessionMiddleware 在 middleware.py 是正确的。
  • 您无法在 GAE 上写入文件系统,并且某些具有此类功能的模块/功能被禁用。 os.mkdir 恰好是其中之一。
  • 谢谢艾伦。我今天会检查一下。
  • 尽管我真的很喜欢bottle,但我还是决定在使用GAE 时使用它而不是谷歌的webapp 框架和用户服务是在推绳子上山。所以我已经转移到 webapp 和用户。
【解决方案2】:

我通过重新处理 webapp 和 Google 用户服务的问题来回答我的问题,该服务具有更好的与 GAE 合作的文档。

【讨论】:

    猜你喜欢
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 2016-10-06
    • 2011-11-30
    • 2014-02-19
    • 2011-09-03
    • 2013-05-01
    相关资源
    最近更新 更多