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