Pythonの対話モードの履歴と矢印キー

Pythonの対話型モードで突然すべての矢印キーが失敗するのはなぜだれでも説明できるのだろうか。

例えばコマンド履歴をたどるためにボタンを押すと、 “^ [[A”となります。他の矢印キーと同じです。

私はなぜこれが起こったのか、そしてそれが以前にはうまくいっていたのかわかりません(OS X Snow Leopardで)。誰もがこれを修正する方法を知っていますか?

どうもありがとう、

G

ベストアンサー
どのPythonを使用しているかはわかりませんが、言及している症状は実際にはPythonがreadlineサポート付きで構築されていないことが原因です。最近のOS X上のPythonは、GNU readlineライブラリまたはApple提供のeditlineライブラリ(AKA libedit)を使用するように構築することができます。次の2つのコマンドを使用して、使用しているPythonを正確に確認できます。それでも問題が解決しない場合は、質問を編集してこれらのコマンドからの出力を表示します。

これはOS X 10.6上の最近のMacPorts Python 2.6を示す例です。

$ python -c 'import sys;print(sys.version);print(sys.executable)'
2.6.5 (r265:79063, Jul 15 2010, 01:53:46) 
[GCC 4.2.1 (Apple Inc. build 5659)]
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python

$ otool -L $(python -c 'import readline; print(readline.__file__)')
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/readline.so:
    /opt/local/lib/libreadline.6.1.dylib (compatibility version 6.0.0, current version 6.1.0)
    /opt/local/lib/libncursesw.5.dylib (compatibility version 5.0.0, current version 5.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)

パスのプレフィックス/ opt / local /はMacPortsがインストールしたソフトウェアのデフォルトの場所であり、otoolの出力はこのPythonのreadlineモジュールがMacPortsがインストールしたGNU readlineライブラリに動的にリンクされていることを示しています。

転載記事の出典を記入してください: Pythonの対話モードの履歴と矢印キー - コードログ