我想用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是一个默认的模板系统.金字塔版的工作正常.
您的基本问题是您使用的是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.忽略安装说明和要求只会减慢您的速度并使生活变得艰难.
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |