В настоящее время я использую webpy с тем же ограничением, его система шаблонов не может получить доступ к модулю синтаксического анализатора (заблокирован) и не может записать в файловую систему в Google App Engine, поэтому вам нужно выполнить предварительную компиляцию шаблоны заранее.
Я решил эту надоедливую проблему с помощью скрипта Python, который каждый раз, когда файл данного каталога изменяется, запускает прекомпиляцию этого файла.
Я использую OSX и использую FSEvents , но я считаю, что вы можете найти другие решения / библиотеки на любой другой платформе ( incron в Linux, FileSystemWatcher в Windows):
from fsevents import Observer
from fsevents import Stream
from datetime import datetime
import subprocess
import os
import time
PROJECT_PATH = '/Users/.../Project/GoogleAppEngine/stackprinter/'
TEMPLATE_COMPILE_PATH = os.path.join(PROJECT_PATH,'web','template.py')
VIEWS_PATH = os.path.join(PROJECT_PATH,'app','views')
def callback(event):
if event.name.endswith('.html'):
subprocess.Popen('python2.5 %s %s %s' % ( TEMPLATE_COMPILE_PATH ,'--compile', VIEWS_PATH) , shell=True)
print '%s - %s compiled!' % (datetime.now(), event.name.split('/')[-1])
observer = Observer()
observer.start()
stream = Stream(callback, VIEWS_PATH, file_events=True)
observer.schedule(stream)
while not observer.isAlive():
time.sleep(0.1)