【发布时间】:2021-08-10 22:57:07
【问题描述】:
不久前我开始在我的一个程序中使用它。从那以后,每当我在运行 python 的控制台(cmd.exe 实例)上键入 tab 键时,都会收到 readline 内部错误。完整的回溯如下(注意我没有在这个上下文中导入 cmd 模块,甚至没有使用它导入脚本。我只是启动了 python,按下了 tab 并看到了一个异常):
<pre>
Traceback (most recent call last):
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\console\console.py", line 768, in hook_wrapper_23
res = ensure_str(readline_hook(prompt))
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\rlmain.py", line 571, in readline
self._readline_from_keyboard()
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\rlmain.py", line 536, in _readline_from_keyboard
if self._readline_from_keyboard_poll():
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\rlmain.py", line 556, in _readline_from_keyboard_poll
result = self.mode.process_keyevent(event.keyinfo)
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\modes\emacs.py", line 243, in process_keyevent
r = self.process_keyevent_queue[-1](keyinfo)
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\modes\emacs.py", line 286, in _process_keyevent
r = dispatch_func(keyinfo)
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\modes\basemode.py", line 257, in complete
completions = self._get_completions()
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\lib\site-packages\pyreadline\modes\basemode.py", line 200, in _get_completions
r = self.completer(ensure_unicode(text), i)
File "C:\SP_CI_PROGRAMS\Languages\Python\3.6.1\Lib\rlcompleter.py", line 80, in complete
readline.redisplay()
AttributeError: module 'readline' has no attribute 'redisplay'
</pre>
在你问之前,我已将 python 安装到目录“C:\SP_CI_PROGRAMS\Languages\Python\3.6.1”。它可以从路径变量访问。此外,我设计的任何脚本放在一个目录中,你也可以从路径变量访问(包括使用 python 的 cmd 模块的脚本)。
这似乎不是一个紧迫的问题,特别是因为我可以只输入 4 个空格,但是使用制表符是我特别习惯的事情,第二次我输入制表键,我写的任何东西打印回溯时,前一个块会立即丢失。拜托,谁能告诉我如何解决这个问题。
编辑:这仅在 python 解释器中。在正在运行的程序或其他程序中键入选项卡不会造成任何问题。
【问题讨论】: