繁体   English   中英

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

[英]python console tab completion not working in windows

运行 Windows 10

据我了解,python3 在已经内置的 python 控制台中具有制表符完成功能,但这对我不起作用。

当我点击选项卡时,没有完成:

在此处输入图像描述

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

内置完成依赖于 GNU readline库。

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

python -m pip install pyreadline

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

python -m pip install pyreadline3

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

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

py -3 -mpip install ipython

然后运行它:

py -3 -mIPython

如果您不希望整个ipython只是为了获得这些功能, prompt_toolkit确实提供了一个极简的ptpython REPL ,它基本上是“Python 和prompt_toolkit提供的 REPL”,没有所有其他 IPython 花里胡哨。

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

pip install pyreadline
pip install ipython

对于 Windows,请考虑使用免费的 Visual Studio 社区作为 Python IDE - 它具有您可能需要的 Python shell(Python 交互式窗口)的所有开箱即用的自动完成功能:用于模块、方法等。

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

Python交互窗口


如果您想自动添加自己的模块路径,您应该使用 odjo 描述的内置site模块: https ://stackoverflow.com/a/59411635/2170898 -> 只需在site.USER_SITE目录中创建sitecustomize.py文件此内容(不要忘记更改实际路径):

import site
site.addsitedir(r'C:\My_Projects')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM