2013-04-01 1 views
2

저는 Flask를 사용하는 Google App Engine 프로젝트에서 작업하고 있습니다. 플라스크가 Jinja2를 사용하고 있습니다. Flask와 모든 필수 모듈을 프로젝트의 루트 폴더에 넣으면 서버가 올바르게 시작됩니다. 그러나 디렉토리를 약간 정리하여 Flask와 다른 모듈 (Jinja2 포함)을 'lib'라는 하위 디렉토리로 옮겼습니다. GAE - Flask가 Jinja2를 하위 디렉토리에서 가져올 수 없습니까?

app.yaml 
main.py 
myapp 
    __init__.py 
    view.py 
    blahblah.py 
lib 
    flask 
    jinja2 
    OtherModules 

그런 다음 응용 프로그램의 main.py 파일에 내가 sys.path.insert(0, 'lib')를 사용하여 디렉토리를 추가 : 같은 내 프로젝트 보인다. 플라스크는이 방법을 사용하여 벌금을 가져 오는 것 같지만, 플라스크는 둘 다 lib 폴더에서 Jinja2를 찾을 수없는 것 같습니다. 내 실행 dev_appserver 시험에서보기에 액세스하려고 할 때 내가 얻을 :

File "lib/flask/__init__.py", line 19, in <module> 
    from jinja2 import Markup, escape 
ImportError: No module named jinja2 

가 어떻게 플라스크는 Jinja2를 찾아 (및 기타 모듈은 자신의 요구 사항을 찾을 수) lib 디렉토리에 그들을 유지하고 있지 않는 반면하도록 할 수 있습니다 모듈을 편집하여 경로를 조정 하시겠습니까? 다음은

알고 도움이 될 것에 경우 뭔가 내 main.py 파일입니다

추가하려면 애플리케이션 제목의 파일에 사용하면 응용 프로그램 엔진 응용 프로그램에서이 라인을 신사를 포함하기 위해
import sys 
sys.path.insert(0, 'lib') 

from google.appengine.ext.webapp.util import run_wsgi_app 
from myapp import app 

run_wsgi_app(app) 

답변

2

libraries: 
    - name: jinja2 
    version: latest 

Documentation 더 많은 사용 가능한 라이브러리를 포함합니다.

로컬 서버용으로 사용하려면 시스템에도 설치해야합니다. 시스템과 같은 유닉스에서 그것은

sudo easy_install jinja2 

추가 정보가 될 것입니다 : 당신의 기술 스택을 결합하고 응용 프로그램 엔진 웹 서비스를위한 자동화 및 모범 사례 일련의를 제공 GAE-초기화라는 오픈 소스 framework이있다. 아마 그것을 볼 가치가있을 것입니다.

관련 문제