`ipython`选项卡自动完成功能不适用于导入的模块

djp*_*121 74 python tab-completion ipython

IPython上的标签完成似乎不起作用.例如,

import numpy
numpy.<tab>
Run Code Online (Sandbox Code Playgroud)

只需添加一个标签.

import numpy
num<tab>
Run Code Online (Sandbox Code Playgroud)

只是添加一个标签.你能否为这个问题提出一些可能的原因?我正在运行Windows 7和Python 2.6.5.

joa*_*uin 92

确保已安装pyreadline库.标签完成和其他IPython功能需要它 - 在Windows中它没有IPython包,你必须单独安装 -

> pip install pyreadline
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个答案已经过时了,因为 iPython 自 5.0 版本以来不再依赖 pyreadlines,并且自 2017 年以来 pyreadlines 尚未开发 - 请参阅 https://ipython.org/pyreadline.html (3认同)
  • 添加建议以使用Anaconda或Miniconda来管理安装.我刚刚安装了ipython(`conda install ipython`)并没有选项卡完成问题.您可以与pip同时使用它. (2认同)

Unc*_*ter 73

如果有人使用最近的7.19.0并且自动完成不起作用,请尝试降级jedi0.17.2

pip install jedi==0.17.2
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅https://github.com/ipython/ipython/issues/12740

  • 将 jedi 降级到 0.17.2 对我有用 (7认同)

小智 13

pip uninstall jedi --yes
Run Code Online (Sandbox Code Playgroud)

pip install pyreadline
Run Code Online (Sandbox Code Playgroud)

当前带有 Jupyter 笔记本的 Ipython 不需要 jedi .. 所以你只需使用上面的命令卸载它。

我从这里得到的。


zwa*_*ker 8

您的ipythonrc文件可能已过期.试试跑步

ipython -upgrade
Run Code Online (Sandbox Code Playgroud)

  • 不再支持`-upgrade`标志. (7认同)

Rab*_*ski 6

pip 告诉我我安装了pyreadline 1.7.1版

C:\Users\me>pip freeze | grep readline
pyreadline==1.7.1
Run Code Online (Sandbox Code Playgroud)

升级pyreadline修复它为我:

C:\Users\me>pip install --upgrade pyreadline

C:\Users\me>pip freeze | grep readline
pyreadline==2.0
Run Code Online (Sandbox Code Playgroud)