2013-02-09 3 views
-3

Django의 기본 템플릿 언어 대신 Django로 Mako를 시험해보고 싶습니다.Mako : Template 클래스를 가져올 수 없습니다. " mako template.py"에 SyntaxError 오류가 있습니다. 622

from mako.template import Template 
mytemplate = Template("hello world!") 
print mytemplate.render() 

나는 윈도우에서 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 

그 부분의 코드를 내가 in the manual 서면으로 마코의 Template 클래스를 가져 오려고 할 때 나는 문제가 있어요 :

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에서 아무 것도 찾을 수 없습니다.

저는 파이썬 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를 거기에서 가져 왔습니다. 그리고 피라미드의 버전이 잘 작동합니다.

+1

파이썬 3은 비교적 새로운 것으로, 발견 한대로 모든 패키지가 아직 지원하지 않습니다. Mako 0.7.3이 작동해야합니다. 어떻게 설치 했습니까? 단지 압축 파일을 푸는 것만으로는 충분하지 않습니다. python setup.py install을 사용해야합니다 (가급적이면'virtualenv'와'pip install'과 같은 래퍼 도구를 통해). –

답변

4

기본 문제는 장고와 같은 대규모 프로젝트에서 비교적 새로운 Python 3을 사용하고 있다는 것입니다.

둘째, 패키지를 올바르게 설치하는 방법을 찾아야합니다. 나는 Mako가 어디서 왔는지는 모르지만 "단지 tarball을 풀어 라"는 것을 알지 못한다. 아마 PHP에 대한 지식이 있다고 가정하고 있을지 모르겠지만 정확하지는 않다.

Mako 사이트에서 권장되는 설치 방법은 pip입니다. 수동으로 다운로드 갈 경우

, 여기에 예를 들어, 파이썬 패키지를 설치하는 방법에 대한 지침을 읽어해야합니다 http://wiki.python.org/moin/CheeseShopTutorial

마코 당신을 위해 작동하지 않는 이유는 당신이하지 않은 설치 절차 (실행)은 제공된 모든 Python 2 코드를 파이썬 3에서 작동하도록 변환합니다. 누군가가 기본 구문 오류에 대한 코드를 확인하는 것을 원하지 않았습니다! 당신이 파이썬을 처음부터 https://docs.djangoproject.com/en/1.4/intro/install/

을 : 설치 지침이 명확하게 2.7 파이썬 2.5를 사용하기 위해 필요하다고 -

당신이 장고를 사용하려는 경우,하지만, 파이썬 3은 잘못된 선택은 확실히 실행하기 전에 걸어 가야하고, 시험되고 테스트 된 경로 (Django의 Python 2.7)와 함께 가야합니다. 설치 지침과 요구 사항을 무시하면 속도가 느려지고 삶을 힘들게 만듭니다.