2013-04-01 4 views
2

Я работаю над проектом Google App Engine с использованием Flask. Затем колбу использует 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'). Флажок, кажется, импортирует отлично, используя этот метод, но Flask, похоже, не может найти Jinja2 с ними как в папке lib. При попытке получить доступ к представлению на моем работает тест 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

Для того, чтобы включить дзиндзя в вас приложения App Engine в файле app.yaml добавить эти строки

libraries: 
    - name: jinja2 
    version: latest 

Documentation для включения большего количества доступных библиотек.

Чтобы использовать его для локального сервера, вы также должны установить их в свою систему. В UNIX подобной системы было бы

sudo easy_install jinja2 

Дополнительная информация: есть открытый источник framework называется GAE-первонач, который сочетает в себе свой стек технологий и предоставляет ряд автоматикой и передовой практики для веб-служб App Engine. Возможно, стоит взглянуть на него.

Смежные вопросы