私は対話的なPython REPLセッションにドロップする私のPythonスクリプトの一部で、次のトリックを使用します。Pythonで「上矢印」の歴史OS Xとcode.InteractiveConsole上
import code; code.InteractiveConsole(locals=globals()).interact()
これは通常、さまざまなに適しています私のラップトップ(OS X 10.11.4)では、READPLをサポートせずにREPLを起動します。私は^[[A^C
ガベージ文字を取得することがわかります。
My-MBP:~ complex$ cat repl.py
a = 'alpha'
import code; code.InteractiveConsole(locals=globals()).interact()
b = 'beta'
My-MBP:~ complex$ python repl.py
Python 2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> a
'alpha'
>>> ^[[A^C
REPLの矢印コマンド履歴が正常に動作し、最大私は、直接python
を呼び出す場合。
私はglobals()
を調べていくつかの手がかりを探しましたが、どちらの場合も同じように見えます。どのように私はこれを修正することができますか、またはどこを見て上の任意のアイデア?
編集:そして、正しい動作表示するには:
My-MBP:~ complex$ python
Python 2.7.10 (default, Oct 23 2015, 19:19:21)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 'a'
'a'
>>> 'a'
rlwrapへのポインタを理解してください。しかし、私はHomebrewをインストールしていないので、これを行う予定はありません。どのように、なぜ組み込みの 'python'でこれが動作しないのかを理解したいと思います。 – complex