python控制台选项卡完成无法在Windows中工作

red*_*888 8 python python-3.x

运行Windows 10

从我的理解python3已经内置的python控制台中的选项卡完成,但这对我不起作用.

当我点击标签时,没有完成:

在此输入图像描述

我知道有些模块可以做到这一点,但我想使用本机功能,如果它在Windows上可用.

Ela*_*lad 28

原始版本pyreadline不再维护,并且不适用于较新版本的 Python (>=3.10)。安装pyreadline3工程:

python -m pip install pyreadline3
Run Code Online (Sandbox Code Playgroud)


Joh*_*ooy 12

内置完成依赖于gnu readline库.

您可以通过在Windows上安装此软件包来完成工作

python -m pip install pyreadline
Run Code Online (Sandbox Code Playgroud)

  • 不明白为什么这不是 Windows 站点包的一部分,许可证问题? (7认同)
  • 解决了问题,但我无法再插入选项卡。即使运行一个简单的“for”循环也不行 (3认同)
  • @DavidW:回答为什么“包似乎也很久没有更新”:`pyreadline` 最初是为了支持 IPython(在 4.x 版本中使用它)而开发的。但从 IPython 5.0 开始,他们转而使用“prompt_toolkit”(功能更加全面且独立于平台),而且很明显,一旦他们做出决定,他们就停止更新“pyreadline”(“pyreadline”最后一次更新) 2015 年 9 月,IPython 4.0 发布一个月后;IPython 5.0 九个月后发布)。 (2认同)

Sha*_*ger 7

我不鼓励pyreadline在可能的情况下使用它,因为它是为了支持 IPython 而编写的,并且当 IPython 停止使用readline/pyreadline支持其 REPL 时,我就停止了积极的开发。

作为替代方案,我建议使用 IPython 本身;它实现了自己的制表符补全功能(prompt_toolkit从 5.0 开始使用),以与终端无关的方式工作。如果您安装并使用ipython,您将获得选项卡补全以及它提供的许多其他功能,以改善交互体验。使用py.exe与现代 Python 捆绑在一起的管理器应用程序,将其安装为 Python 3(如果为所有用户安装了 Python,则在管理员提升的命令提示符中):

py -3 -mpip install ipython
Run Code Online (Sandbox Code Playgroud)

然后运行它:

py -3 -mIPython
Run Code Online (Sandbox Code Playgroud)

如果你不想仅仅ipython获得这些功能,prompt_toolkit人们确实提供了一个极简的ptpythonREPL,它基本上是“Python 提供的 REPL prompt_toolkit”,没有所有其他 IPython 的花里胡哨。

  • @CraigMcQueen:“pyreadline”正在尝试模拟“readline”,它的工作效果勉强足以使 IPython“不是最差的”。我已经很久没有在 Windows 上使用它了,但我记得当一些小事情不能像在本机“readline”系统上那样工作时(基本上总是更糟),我发现它令人难以置信的沮丧。切换到“prompt_toolkit”是一个重大改进。 (2认同)