我正在尝试将我一直在本地运行的应用程序移植到 GAE。该应用程序使用 Bottle.py 框架。我使用 Beaker 进行会话管理。我有点菜鸟,无法正确导入烧杯。非常感谢帮助。
我在 Mac OS X 10.6.7 下使用 GoogleAppEngineLauncher.app 运行移植的应用程序。这会在我的机器上的模拟环境中运行应用程序,而不是在 Google 的服务器上。
对于我的 GAE 端口,我已将 Bottle.py 放入名为“framework”的目录中。该目录有一个空__init__.py
文件。瓶子工作正常,可以提供“你好世界”。
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 版本的标准库中。