2011-08-29 66 views
3

我正试图将我一直在本地运行的应用移植到GAE。该应用程序使用Bottle.py框架。我使用Beaker进行会话管理。我是一个小菜鸟,无法正确导入Beaker导入。非常感谢。使用GAE获取烧杯

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

对于我的GAE端口,我已经把Bottle.py放到了一个名为'framework'的目录中。该目录有一个空的__init__.py文件。瓶子工作正常,可以服务'你好世界'。

烧杯存在于我的应用程序(日志/烧杯)根目录中的自己的目录中。烧杯也有一个空的__init__.py

相关代码:

​​

我得到一个错误信息是这样的:

File "/Users/mscantland/code/journal/main.py", line 19, in <module> 
    from beaker import SessionMiddleware 
ImportError: cannot import name SessionMiddleware 

这是我试图让这个迄今工作:

  • 经过/烧杯中的所有内容的权限,以确保它们是可执行的。

  • 冉烧杯,是和还重新写了所有的import语句,因此:

    从beaker.x进口Ÿ

变成了:

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

我使用的烧杯就像在答案中一样,即从'beaker.middleware import SessionMiddleware'中将目录名为beaker的目录放在与我的gae应用程序相同的目录中。烧杯会议的作品,但我不能让它与模板一起工作,除非传递变量,即烧杯会话不能在来自requiest.session或类似的模板中提供。 –

回答

0

SessionMiddleware位于middleware.py中。尝试:

from beaker.middleware import SessionMiddleware 
+0

谢谢,但我已经尝试过,它移动的问题: 文件“/Users/mscantland/code/journal/beaker/pkg_resources.py”,第28行,在 从os import utime,rename,unlink, mkdir ImportError:无法导入名称mkdir – mscantland

+0

您的观点非常有效,但SessionMiddleware在middleware.py中是正确的。 – mscantland

+1

您无法在GAE上写入FileSystem,并且某些具有此类功能的模块/功能被禁用。 'os.mkdir'碰巧就是其中之一。 –

0

我回答我的问题通过重新接近与Web应用程序和谷歌的用户服务,它具有与GAE工作更好的文档的问题。

+1

然后在此处链接。 –