Pyramid 1.2 в Google App Engine вызывает ошибку импорта - PullRequest
2 голосов
/ 01 октября 2011

Я пытаюсь запустить Pyramid в GAE, выполнив шаги, описанные здесь . На сервере dev все работает нормально, но при развертывании на серверах 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 Runtime использовать версию 1.1, включенную в мое приложение?

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Помимо обновления времени выполнения, я нашел другой обходной путь.Я переименовал модуль WebOb 1.1 с webob на webobx и сделал ссылку на пирамиду переименованным модулем webobx.Не очень элегантно и придется повторить, если я получу обновить пирамиду, но работает.

1 голос
/ 04 октября 2011

По сути, это не решение, но мы собираемся выпустить новую среду исполнения Python, Python 2.7, которая включает в себя обновленные версии библиотек, включая webob 1.1. Возможно, вы могли бы настроить свое приложение против этого, а не против времени выполнения 2.5?

...