【问题标题】:Pyramid 1.2 on Google App Engine causes import errorGoogle App Engine 上的 Pyramid 1.2 导致导入错误
【发布时间】:2011-10-05 07:17:20
【问题描述】:

我正在尝试按照here 概述的步骤在 GAE 上运行 Pyramid。在开发服务器上一切正常,但在部署到 Google 的服务器时,出现以下错误:

<type 'exceptions.ImportError'>: cannot import name BaseRequest
Traceback (most recent call last):
  File "/base/data/home/apps/.../0-0-1.353634463095353211/main.py", line 9, in <module>
    from pyramid.config import Configurator
  File "/base/data/home/apps/.../0-0-1.353634463095353211/lib/dist/pyramid/__init__.py", line 1, in <module>
    from pyramid.request import Request
  File "/base/data/home/apps/.../0-0-1.353634463095353211/lib/dist/pyramid/request.py", line 6, in <module>
    from webob import BaseRequest

这可能是由于 GAE 使用 WebOb 0.9 而 Pyramid 使用 WebOb 1.1(在我的项目中位于 lib/dist/webob 下),因为 BaseRequest 在 0.9 中丢失。

在main.py 文件中有这个片段:

sys.path.insert(0,'lib/dist')

但它似乎只对开发服务器案例有帮助。我有办法强制 GAE 运行时使用我的应用程序中包含的 1.1 版吗?

【问题讨论】:

    标签: python google-app-engine pylons pyramid


    【解决方案1】:

    它本身并不是一个真正的解决方案,但我们即将发布新的 Python 运行时 Python 2.7,其中包括库的更新版本,包括 webob 1.1。也许您可以将您的应用程序作为目标,而不是针对 2.5 运行时?

    【讨论】:

    • @bdonlan 我们已经宣布它将成为 1.5.5 的一部分,我们刚刚发布了预览版/预发布版。售前赛通常会在正式发行前几周到一个月提供。
    【解决方案2】:

    除了运行时更新之外,我还找到了另一种解决方法。我已将 WebOb 1.1 模块从 webob 重命名为 webobx 并让金字塔引用重命名的 webobx 模块。不是很优雅,如果我要升级金字塔,将不得不重复,但有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      相关资源
      最近更新 更多