この内容は、公開しちゃっていいものかどうか
という気はしてるんだが。。。
Trac1.0ja環境を構築していたら、いくつかのプラグインが動作しない。
ログを見てみるとUnicodeError。
pythonではよくあるエラーで、webの各所では
/usr/lib/python2.7/sitecustomize.py
(実体は/etc/python2.7/sitecustomize.py)
に以下を追加すればいいと書かれている。
ちなみにsitecustomize.pyの置き場についてはここが詳しい。
import sys
sys.setdefaultencoding('utf-8')
実際、前のTrac環境(ver0.12)ではそのように対応している。
けど、今回の環境でやってみてもエラーが解消しない。
さて、どうしたもんかな。
と悩んで強硬策。
python本体のソースを漁って、改変。
改変内容を載せる前に。
環境はこれまでと同じ。
注意事項もこれまでと同じ。
自分はTracの製作者等ではなく、単なる1ユーザーでしかありません。
ソースの改変によるいかなる損失・被害等にも対応しませんし
動作保証すらしていません。
もしこの記事を読んでソースの改変を行う時は
自己責任でお願いします。
もはやお約束のような文言になってますが、
今回の改変はホントに危険性ありだと想います。
ご注意を。
対象ファイル:/usr/lib/python2.7/site.py
改変内容:
505c505
< #if encoding != "ascii":
---
> if encoding != "ascii":
507,508c507,508
< #sys.setdefaultencoding(encoding) # Needs Python Unicode build !
< sys.setdefaultencoding('utf-8')
---
> sys.setdefaultencoding(encoding) # Needs Python Unicode build !
>