2011-08-29 2 views
3

저는 로컬에서 실행 중이던 응용 프로그램을 GAE에 이식하려고합니다. 응용 프로그램은 Bottle.py 프레임 워크를 사용합니다. 세션 관리를 위해 비커를 사용합니다. 나는 조금 멍청하고 비커가 제대로 수입되는 데 어려움을 겪고있다. 도움말 크게 감사드립니다.Beaker가 GAE와 작동하는 중

나는 MacApp X 10.6.7에서 GoogleAppEngineLauncher.app를 사용하여 이식 된 응용 프로그램을 실행 중입니다. 이것은 Google 서버가 아닌 내 컴퓨터의 시뮬레이션 환경에서 앱을 실행합니다.

내 GAE 포트의 경우 Bottle.py를 '프레임 워크'라는 디렉토리에 넣었습니다. 이 디렉토리에는 빈 __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의 모든 항목에 대한 사용 권한이 실행 파일인지 확인합니다.

  • 란 비커로-이며, 또한 그 때문에 모든 import 문을 다시 썼다

    beaker.x 가져 오기 Y에서

가되었다을 :

from x import y 
  • 추가 GAE가 사용하는 Python 버전의 표준 라이브러리에없는 'pkg_resources.py'.
+0

답변 : 비커를 사용합니다. 예를 들어 비어 커 (beaker.middleware import SessionMiddleware)에서 beager라는 이름의 디렉토리가 내 애플리케이션과 같은 디렉토리에 있습니다. 비커 세션은 작동하지만 변수를 전달하지 않으면 비클 세션이 템플릿에서 작동하지 못합니다. 즉, 비커 세션은 requiest.session 또는 이와 유사하게 템플릿에서 작동하지 않습니다. , 연결 해제, 이름 변경, 운영 체제 가져 오기 utime의에서 에, 파일 "/Users/mscantland/code/journal/beaker/pkg_resources.py", 라인 28 : –

답변

0

SessionMiddleware는 middleware.py에 있습니다. 시도 : 나는 GAE 작업을위한 더 나은 문서를 가지고 웹 애플리케이션과 구글의 사용자 서비스의 문제를 다시 접근하여 내 질문에 대답

from beaker.middleware import SessionMiddleware 
+0

감사합니다,하지만 나는 그것을 시도하고 그것은 문제를 이동 mkdir ImportError : 이름을 가져올 수 없습니다 mkdir – mscantland

+0

귀하의 요점은 매우 유효합니다 - 당신은 그 sessionMiddleware가 middleware.py에 맞습니다. – mscantland

+1

GAE의 FileSystem에 쓸 수 없으며 이러한 기능이있는 일부 모듈/기능이 비활성화되어 있습니다. 'os.mkdir'은 그 중 하나입니다. –

0

.

+1

여기에 연결하십시오. –

관련 문제