curses アプリケーションで多くの Unicode テキストを表示しようとしています。私の開発マシンは MacOSx 10.6 で、Apple に同梱されているデフォルトの Python を使用しています。
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
画面に Unicode テキストを追加すると、画面がめちゃくちゃになりました。解決策を Google で調べてみましたが、_curses モジュールを libncurse ライブラリではなく libncursesw ライブラリにリンクすることを他の人が提案しています。
パスを確認したところ、 /opt/local/lib で見つかりました(以下を参照)
libncurses++.a
libncurses++w.a
libncurses.5.dylib
libncurses.a
libncurses.dylib
libncursesw.5.dylib
libncursesw.a
libncursesw.dylib
curses モジュールがリンクされているライブラリを確認するにはどうすればよいですか? また、他のライブラリにリンクするにはどうすればよいですか? 私のPythonを再コンパイルせずにそれを行うことは可能ですか?
これはちょっと恥ずかしいですが、私の環境でユニコードを適切に印刷するための解決策を見つけました。ある時点で、Macports から curses ライブラリをインストールしたのに、すでに持っていることを忘れていたと思います。
初めてテキストが表示されなかった問題は、Python プログラム内でロケールを設定する必要があるためです。ロケール設定は実行中のシェルから継承されると思っていましたが、2 行のコードを追加するだけで問題が解決しました。
import locale
locale.setlocale(locale.LC_ALL,"")
ただし、python 外部ライブラリが存在する場所とそれらを確認する方法を知っておくとよいでしょう。