linkchecker を OSX w/ py25 で使う
複数の人間で Web を作る場合、最後にリソースが適切に揃っているのか統一的にチェックする手法が必要になると思います。1
その際、どういうツール使うのがいいのかなーと去年調べまして、今のところ
Check websites for broken links — LinkChecker
がいいのかな、と考えています。Python を使ってて Windows でも Linux でも動くし、結果が見やすいのも気に入っています。
しかしこれ、OSX で動かそうとしたときにハマります。2
File "/sw/lib/python2.5/site-packages/linkcheck/director/console.py", line 30,
in <module>
stderr = codecs.getwriter(_encoding)(sys.stderr, errors="ignore")
File "/sw/lib/python2.5/codecs.py", line 930, in getwriter
return lookup(encoding).streamwriter
LookupError: unknown encoding: X-MAC-JAPANESE
はいはい、ぐぐる先生ぐぐる先生。
……。
ねぇ。どんだけ調べても linkchecker でこの現象にハマっている事例は見つかりません。見つかるのは Django とか Trac とか。くそー、linkchecker はマイナーだったか。
で、どうもこれは Mac で Python のツールを動かすときには必ずハマる道らしい。うへー。ばかばかしくね? ばかばかしくね?
というわけで今回は以下のように修正しました。
こう直すべきなのかどうかは分からないです。
Python 2.6 で直ってるとかいう話もあるようですが、すべてのツールが 2.6 で動くように書かれてるわけでもないでしょうし、なかなか面倒な話ですね。
※ たぶん Python 2.6 を入れた状態で、fink も macports も使わずに野良で、あるいは自分でそれ用のパッケージを作って linkchecker を入れればいいんじゃないかなという気がしますが、やってみていません。