†python3.1がリリースされたのでmod_wsgiを使ってwebサービスが書けないかと模索したときの記録。日本語を表示するために行った作業の備忘として記述する。2009後述の内容は[Web-SIG]メーリングリストで2007年12月の段階で議論されていたようです。configureで怒られたのでyumでインストールした。fedora8ではpython2.5がインストール済みでいろいろな場面で利用されるので、これを上書きしないようにpython3をインストールする。幸いにもpythonのconfigureがこれを理解しており『python3.1』および『python3』という名前でインストールされるので、上記環境であればあまり意識することはない。このバージョンはトップページでは紹介されていない。ダウンロードページにいくと存在している。all</Location>を追加。http://ドメイン名/wsgi/testで/var/www/wsgi/test.pyのpythonスクリプトが実行されるようになる。これは1つのファイルで複数のリクエストを受けるようないまどきのフレームワークの記述ができる。all</Location>のように記述すればよい。http://ドメイン名/wsgi/以下のファイルはすべてpythonスクリプトだと解釈されるはず。†mod_wsgiでうごかすスクリプトファイルは単純。worldと表示される。†ここまでくれば問題なし、、、とおもい、文字列に日本語をいれてみた。http://ドメイン名/index.htmlとのこと。なにか設定が必要なのか?とおもい、いろいろやってみたがまったく歯が立たず。pythonのインタプリタ環境ではUTF-8な日本語は普通に使えるので、mod_wsgiに疑念の目を向ける。mod_wsgiのソースコード(mod_wsgi.c)を読んでみて、エラーログのメッセージから問題がでていると思われる場所は特定。3960行目前後の関数Adapter_write()あたりだと思われる。Py_None;}python3以上の場合、表示されるべき文字列を変数itemで取得し、unicodeだったならばLatin-1に文字コードを変換しているようである。UTF-8なコードをすべてLatin-1には変換できないでしょ。installしてhttpdを再起動。これで日本語を含む文字列でも正常に表示されるようになった。こんな問題が出ているのかよくわからないが、本家が対応してくれるまでは、これでしのごうとおもう。本格的にpython3+mod_wsgiでwebサイトを作りはじめたわけではないので、いまのところは私にはこれで十分です。