使用 code.interact 启用控制台功能

l k*_*l k 0 python console

如果我从命令行启动一个新的 Python 交互式会话,则会出现一些控制台功能,例如使用箭头键访问上一个命令等。
但是,如果相反,我使用code.interact()从较大的脚本内部启动交互式会话,则无法正确处理转义序列 - 例如,按 ? 键打印^[[A而不是显示上一个命令。如何启用此功能?

Sun*_*tha 6

您可以使用readline模块来使箭头键工作

import code                                                  
import readline                                              
import rlcompleter                                           

vars = globals()       
vars.update(locals())

readline.set_completer(rlcompleter.Completer(vars).complete) 
readline.parse_and_bind("tab: complete")                     
code.InteractiveConsole(vars).interact()                     
Run Code Online (Sandbox Code Playgroud)

  • 我需要“readline.set_completer(rlcompleter.Completer(vars).complete)”来让制表符完成工作。特别是如果我设置自定义上下文,那么它不会识别那些具有制表符完成功能的上下文,只能识别内置的上下文。谢谢。 (2认同)