Mako:无法导入Template类.在第622行的"\ mako\template.py"中出现SyntaxError错误

Gre*_*een -3 mako python-3.x

我想用Django而不是Django的默认模板语言来尝试Mako.但是当我尝试导入手册中Template所写的Mako 课程时,我遇到了问题:

from mako.template import Template 
mytemplate = Template("hello world!") 
print mytemplate.render()
Run Code Online (Sandbox Code Playgroud)

我在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
Run Code Online (Sandbox Code Playgroud)

该部分的代码:

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)
Run Code Online (Sandbox Code Playgroud)

它能是什么?我在谷歌找不到任何关于此错误的信息.

我正在使用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是一个默认的模板系统.金字塔版的工作正常.

spo*_*key 5

您的基本问题是您使用的是Python 3,这对于像Django这样的大型项目来说相对较新.

其次,您需要了解如何正确安装软件包.我不知道你从哪里得到Mako,但你不会发现任何说"只需解压缩tarball"的地方 - 也许你是从你对PHP的知识中假设的,但这不正确.

在Mako网站上,建议的安装方法是pip.

如果你手动下载,你需要阅读有关安装Python软件包的说明,例如:http://wiki.python.org/moin/CheeseShopTutorial

Mako不适合你的原因是安装程序(你还没有运行)转换所有提供的Python 2代码,以便它可以在Python 3上运行.并不是有人不愿意检查代码基本语法错误!

但是,如果您尝试使用Django,那么Python 3绝对是错误的选择 - 安装说明明确表示您需要使用Python 2.5到2.7:https: //docs.djangoproject.com/en/1.4/intro/install /

由于你是Python的新手,你应该在运行之前尝试走路,并使用经过试验和测试的路径 - 这是用于Django的Python 2.7.忽略安装说明和要求只会减慢您的速度并使生活变得艰难.