python控制台选项卡完成在windows中不工作

python控制台选项卡完成在windows中不工作,python,python-3.x,Python,Python 3.x,运行Windows 10 据我所知,python3在python控制台中已经内置了tab补全功能,但这对我来说不起作用 当我点击tab时,没有完成: 我知道有些模块可以做到这一点,但如果windows上有本机功能,我想使用它。内置完成依赖于GNUreadline库 您可以通过在Windows上安装此软件包的python版本()来完成工作 python-mpip安装pyradline 我不鼓励在可能的情况下使用pyreadline,因为它是为了支持IPython而编写的,当IPython停止使用

运行Windows 10

据我所知,python3在python控制台中已经内置了tab补全功能,但这对我来说不起作用

当我点击tab时,没有完成:


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

内置完成依赖于GNU
readline

您可以通过在Windows上安装此软件包的python版本()来完成工作

python-mpip安装pyradline

我不鼓励在可能的情况下使用
pyreadline
,因为它是为了支持IPython而编写的,当IPython停止使用
readline
/
pyreadline
来支持他们的REPL时,它就停止了主动开发

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

然后运行它:

py -3 -mIPython

如果您不想让整个
ipython
仅仅获得这些特性,那么
prompt\u工具包
人员提供的基本上是“Python和由
prompt\u工具包
提供的REPL”没有所有其他IPython功能。

在python CLI和
pyspark
shell上安装以下软件包应该可以解决这个问题

pip安装pyreadline
pip安装ipython

> p>对于Windows考虑使用免费VisualStudio社区作为Python IDE,它具有Python shell(Python交互式窗口)的所有自完成功能,您可能需要:用于模块、方法等

在下面的示例中,我已经导入了我的
DiveIntoPython.py
,一旦导入,模块的名称现在就变成了自动完成建议


如果你想自动添加你自己的模块路径,你应该使用内置的
site
module,如odjo所述:->只需在
site.py中创建
site.py
文件。用户\u site
dir包含此内容(别忘了更改实际路径):


你试过两次付帐吗?通常,它会给你可用命令的列表无选项卡插入实际选项卡不明白为什么这不是Windows站点包的一部分那么,许可证问题?修复了问题,但我不能再插入选项卡。甚至不是为了运行一个简单的
for
loop,我来这里是为了寻找一个在Windows10上使用cmd模块的解决方案。pyreadline可以很好地与powershell中的cmd模块配合使用(尽管Rochak对选项卡的定义是正确的),但在git bash中使用它确实很笨拙,在交互模式(python-i)中只会出现错误。该软件包似乎在很长一段时间内没有更新。@DavidW:回答“软件包似乎在很长一段时间内也没有更新”的原因:
pyreadline
最初是为支持IPython而开发的(它在4.x版本中使用了它)。但从IPython 5.0开始,他们开始使用
prompt_toolkit
(功能更加全面,与平台无关),很明显,一旦他们做出决定,他们就停止更新
pyreadline
pyreadline
最近一次更新是在2015年9月,即IPython 4.0发布一个月后;IPython 5.0发布九个月后)
pyreadline
似乎仍然适用于Python3.9。您对它的反对是务实的还是意识形态的?@CraigMcQueen:
pyreadline
正试图模仿
readline
,而且它的工作做得还不足以让IPython“不是最差的”.我已经很久没有在Windows上使用它了,但我记得当一些小事情没有像在本机
readline
系统上那样工作时(基本上总是更糟)。切换到
prompt\u toolkit
是一项重大改进。
py -3 -mIPython
import site
site.addsitedir(r'C:\My_Projects')