Jinja2でリリースパッケージのテンプレートを使う
Posted on Fri, 12 Mar 2010 00:36:35 +0900
setup.py の書き方とかの方にハマったので、メモしておきます。
pyprof2html で Jinja2 のテンプレートを使っているのですが、 ソース内にテンプレートを埋め込んでいるため可読性や ソースコードハイライトが有効にならない等色々悩ましい感じになってきました。 テンプレート専用のファイルを作って読み出すことにしました。
パッケージとしてリリースするテンプレートファイルはどうやって読み出したらいいのか? そこで登場するのが PackageLoader ですね。
こんな感じ。
ENVIRON = Environment(loader=PackageLoader('pyprof2html',
'./templates', encoding='utf-8'))
パッケージインストール用の設定
ディレクトリ構成
pyprof2html/
setup.py
MANIFEST.in
pyprof2html.py
templates/
basic.html
hotshot-line.html
style.css
jquery.js
jquery.tablesorter.js
setup.py のパッケージ関連の記述は以下のような感じになります。
packages=[''],
package_dir={'': 'pyprof2html'},
package_data={'': ['templates/*']},
sdist用のリリースのために MANIFEST.in ファイルに以下を追加しました。
include pyprof2html/templates/*
そんな感じであります。