OS X和代码在Python中的“向上箭头”历史记录.InteractiveConsole
作者:互联网
我在一些Python脚本中使用以下技巧来进入交互式Python REPL会话:
import code; code.InteractiveConsole(locals=globals()).interact()
这通常可以在各种RHEL机器上正常工作,但是在我的笔记本电脑(OS X 10.11.4)上,它似乎在没有readline支持的情况下启动了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
如果我直接调用python,则REPL中的向上箭头命令历史记录可以正常工作.
我尝试检查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'
解决方法:
只需在脚本或控制台中导入readline.
标签:readline,read-eval-print-loop,python,macos 来源: https://codeday.me/bug/20191118/2030833.html