DeprecationWarning: Absolute template path names are deprecated.
PythonでBottleとPeeweeを使ってアプリケーションを書いていると以下の警告に出くわした。
/usr/local/lib/python2.7/dist-packages/bottle.py:3320: DeprecationWarning: Absolute template path names are deprecated.
fname = self.search(name, self.lookup)
今までも何度も同じようなコードを書いてきているがこのDeprecationWarningを見たのは初めてになる。現在アプリケーションを製作中になるためlocalhostで動かしているのだが、何度もこのエラーがログに表示される。
ザッとコードを追ってみても理由がわからなかったし、Bottleのバージョンを0.12.5と0.13の双方で試してみても同様の症状であった。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 12人 クリック: 423回
- この商品を含むブログ (127件) を見る
今までのアプリケーションとの違いを考えてみると一点違いがあった。今までBottleで制作するアプリケーションは簡易的なものが多かったためBottle標準の簡易的なテンプレートエンジンを利用していたのだが、今回は150万レコードほどのデータを表示する少々大掛かりなアプリケーションになる。そのためBottleのテンプレートエンジンでは少々貧弱になるためテンプレートエンジンとしてBottleの「jinja2_template」を使っている。
from bottle import jinja2_template as template
これが今までのアプリケーションとの大きな違いになる。
そしてこの差分から原因を追いかけてみると、Bottleのdebug機能を有効にしていると通常はキャッシュが破棄されるのだが、Jinjaはテンプレートをキャッシュしてしまうためにこの警告が表示されているとのこと。
Bottleのdebugはデプロイ時には外すためにデバッグ中は気にする必要がないかもしれないが、私のように警告が気になって寝られないという人はdebugオプションを無効にするだけでこの警告は表示されなくなる。
ちなみに私は以下のようにローカルサーバを起動させていた。
run(host='localhost', port=8080, debug=True, reloader=True)
パーフェクトPython (PERFECT SERIES 5)
- 作者: Pythonサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2013/03/05
- メディア: 大型本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (17件) を見る
- 作者: Tarek Ziade,稲田直哉,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2010/05/28
- メディア: 大型本
- 購入: 33人 クリック: 791回
- この商品を含むブログ (91件) を見る
- 作者: ビープラウド
- 出版社/メーカー: 秀和システム
- 発売日: 2012/03/26
- メディア: 単行本
- 購入: 6人 クリック: 765回
- この商品を含むブログ (27件) を見る