LeopardでPythonはじめたら、対話モードで日本語入力できなかった。
次の記事を参考に対応、自分用にメモ。
以下、pythonコマンド実行時にGNUのreadlineで作ったreadline.soを優先させる設定
$ mkdir ~/tmp $ cd ~/tmp $ curl -O "http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz" $ curl -O "ftp://ftp.cwru.edu/pub/bash/readline-5.2.tar.gz" $ curl -O "ftp://ftp.cwru.edu/pub/bash/readline-5.2-patches/readline52-00[1-7]" $ tar xvf Python-2.5.1.tgz $ cp -p Python-2.5.1/Modules/readline.c . $ gzcat readline-5.2.tar.gz | tar xvf - $ cd readline-5.2 $ patch -b < ~/tmp/readline52-001 $ patch -b < ~/tmp/readline52-002 $ patch -b < ~/tmp/readline52-003 $ patch -b < ~/tmp/readline52-004 $ patch -b < ~/tmp/readline52-005 $ patch -b < ~/tmp/readline52-006 $ patch -b < ~/tmp/readline52-007 $ cd .. $ mv readline-5.2 readline $ cd readline $ ./configure --disable-static $ echo '#define NEED_EXTERN_PC 1' >> config.h $ make ...省略 i686-apple-darwin9-gcc-4.0.1: -compatibility_version only allowed with -dynamiclib make[1]: *** [libreadline.5.2.dylib] Error 1 make: [shared] Error 2 (ignored) $ cd shlib $ mv *.so ../.. $ cd ../.. $ vi setup.py
from distutils.core import setup, Extension READLINE_OBJS = [ "bind.so", "callback.so", "compat.so", "complete.so", "display.so", "funmap.so", "histexpand.so", "histfile.so", "history.so", "histsearch.so", "input.so", "isearch.so", "keymaps.so", "kill.so", "macro.so", "mbutil.so", "misc.so", "nls.so", "parens.so", "readline.so", "rltty.so", "search.so", "shell.so", "signals.so", "terminal.so", "text.so", "tilde.so", "undo.so", "util.so", "vi_mode.so", "xmalloc.so", "-ltermcap" ] setup(name="readline", ext_modules=[ Extension(name="readline", sources=["readline.c"], extra_compile_args=["-I."], extra_link_args=READLINE_OBJS)])
$ python setup.py build ...省略 ld: warning in bind.so, file is not of required architecture ...以下、PPC 用に *.so が作られていないと警告される $ cp build/lib.macosx-10.5-i386-2.5/readline.so /Library/Python/2.5/site-packages/ $ cd /Library/Python/2.5/site-packages/ $ sudo vi sitecustomize.py
import sys sys.setdefaultencoding('utf-8') import imp imp.load_dynamic('readline', '/Library/Python/2.5/site-packages/readline.so')