【发布时间】:2013-01-24 21:40:09
【问题描述】:
我想用 Django 代替 Django 的默认模板语言来尝试 Mako。但是当我尝试导入 Mako 的 Template 类时,我遇到了问题,如 in the manual 所写:
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 的版本运行良好。
【问题讨论】:
-
Python 3 相对较新,而且,正如您所发现的,并非所有软件包都支持它。不过,Mako 0.7.3 应该可以工作。你是怎么安装的?仅仅解压存档是不够的,你需要使用 python setup.py install (最好通过包装工具,如
virtualenv和pip install)。
标签: python-3.x mako