-3

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\templateMakoを入れてそこからインポートすることにしました。

UPD

解決策を見つけました。Pyramid Framework をインストールし、そこから Mako を取得しました。これは、Mako がデフォルトのテンプレート システムであるためです。Pyramid のバージョンは正常に動作します。

4

1 に答える 1

5

あなたの基本的な問題は、Django のような大規模なプロジェクトでは比較的新しい Python 3 を使用していることです。

次に、パッケージを正しくインストールする方法を見つける必要があります。Mako をどこから入手したのかはわかりませんが、「tarball を展開するだけ」と書かれている場所はどこにもありません。PHP の知識からそう思っているのかもしれませんが、それは正しくありません。

Mako サイトでは、推奨されるインストール方法は pip です。

手動でダウンロードする場合は、Python パッケージのインストールに関する指示を読む必要があります

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) を使用する必要があります。インストールの手順と要件を無視すると、速度が低下し、作業が困難になります。

于 2013-02-09T22:47:08.183 に答える