Django のデフォルトのテンプレート言語の代わりに、Django で Mako を試してみたいと思います。しかし、マニュアルTemplate
に書かれているようにマコのクラスをインポートしようとすると問題が発生します:
from mako.template import Template
mytemplate = Template("hello world!")
print mytemplate.render()
Windows cmd でこれを行うと、次のようなエラーが表示されます。
C:\Documents and Settings\User>cd C:\py\project\vendor\template\Mako_73 // cd to where I unpacked Mako
C:\py\project\vendor\template\Mako_73>python // run Python interpreter
>>> from mako.template import Template // trying to import and getting an error
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File ".\mako\template.py", line 622
exec code in module.__dict__, module.__dict__
^
SyntaxError: invalid syntax
その部分のコード:
def _compile_text(template, text, filename):
identifier = template.module_id
source, lexer = _compile(template, text, filename,
generate_magic_comment=template.disable_unicode)
cid = identifier
if not util.py3k and isinstance(cid, unicode):
cid = cid.encode()
module = types.ModuleType(cid)
code = compile(source, cid, 'exec')
exec code in module.__dict__, module.__dict__
return (source, module)
それは何でしょうか?このエラーについては、Google で何も見つかりませんでした。
Python 3.3 を使用しています。
Mako-0.7.3 を tar.gz ファイルとしてダウンロードし、解凍しました
C:\py\poject\vendor\template\Mako_73
。PYTHONPATH または paths.pth にこのディレクトリがありません。C:\py\poject
私のDjangoプロジェクトが存在するディレクトリで、\vendor\template
Makoを入れてそこからインポートすることにしました。
UPD
解決策を見つけました。Pyramid Framework をインストールし、そこから Mako を取得しました。これは、Mako がデフォルトのテンプレート システムであるためです。Pyramid のバージョンは正常に動作します。