2011-09-30 2 views
2

here에 설명 된 단계에 따라 GAE에서 피라미드를 실행하려고합니다. 모든 것이 dev에 서버에서 잘 작동하지만 구글의 서버에 배포 할 때, 다음과 같은 오류가 발생합니다Google App Engine의 Pyramid 1.2에서 가져 오기 오류가 발생합니다.

<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 

이것은 아마 피라미드 WebOb 1.1을 사용하는 반면 GAE가 WebOb 0.9을 사용한다는 사실로 인해 발생합니다 (그것은에 lib/dist/webob 아래에있는 내 프로젝트), 왜냐하면 BaseRequest가 0.9에 없기 때문입니다. main.py 파일에서

이 조각이 :

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

하지만 단지 dev에 서버 경우에 도움이 보인다. 거기에 GAE 런타임에서 응용 프로그램에 포함 된 버전 1.1을 사용하도록 강제하는 방법이 있습니까?

답변

1

실제 해결책은 아니지만 webob 1.1을 포함한 라이브러리의 업데이트 된 버전을 포함하는 새로운 Python 런타임 Python 2.7을 출시 할 예정입니다. 아마도 2.5 런타임 대신 앱을 타겟팅 할 수 있습니까?

+1

@bdonlan 우리는 1.5.5의 일부가 될 것이라고 발표했습니다. 우리는 방금 미리보기/시험판을 릴리스했습니다. 사전 출시는 일반적으로 일반 출시보다 2 ~ 3 개월 후에 제공됩니다. –

1

런타임 업데이트 외에도 다른 해결 방법이 있습니다. 나는 WebOb 1.1 모듈의 이름을 webob에서 webobx으로 바꿨고 피라미드를 webobx 모듈로 이름을 변경했습니다. 내가 피라미드를 업그레이드하려고하면 우아하지 않고 반복해야한다.