100

IPython 上的制表符完成似乎不起作用。例如,

import numpy
numpy.<tab>

只需添加一个选项卡。

import numpy
num<tab>

也只需添加一个选项卡。您能否提出一些可能导致此问题的原因?我正在运行 Windows 7 和 Python 2.6.5。

4

19 回答 19

97

确保你已经安装了pyreadline库。它是制表符补全和其他 IPython 功能所必需的 - 在 Windows 中,它不附带 IPython 包,您必须单独安装它 -

> pip install pyreadline
于 2010-04-08T22:14:41.707 回答
78

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

pip install jedi==0.17.2

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

于 2020-12-27T12:23:24.063 回答
16
pip uninstall jedi --yes

pip install pyreadline

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

我从这里得到的。

于 2021-01-23T23:29:53.363 回答
6

您的 ipythonrc 文件可能已过期。尝试运行

ipython -upgrade
于 2011-11-08T21:31:27.660 回答
6

pip告诉我我安装了 pyreadline 1.7.1 版

C:\Users\me>pip freeze | grep readline
pyreadline==1.7.1

升级pyreadline为我修复了它:

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

C:\Users\me>pip freeze | grep readline
pyreadline==2.0
于 2013-05-16T08:23:08.990 回答
4

降级 iPython 就成功了。

pip install --upgrade ipython==5.8.0
于 2019-07-16T06:56:27.957 回答
3

经典的“您是否尝试过将其关闭然后重新打开”对我有用。

pip uninstall ipython
pip install ipython
于 2014-07-30T18:36:34.150 回答
3

这绝对应该有效,因为它在我的情况下有效

conda install ipython  
pip install jedi==0.17.2
于 2021-01-11T06:07:51.993 回答
3

我有这个问题。我通过降级 python-parso 包解决了

降级 python-parso 包 (0.8.0-1 => 0.6.2-1)

于 2020-08-28T04:28:20.397 回答
1

截至目前,在 OSX 上,安装了 ipython 的 pip 没有完成选项卡,pyreadline release.py 被破坏.. WFM 是什么:

easy_install ipython readline

YMMV。

于 2012-10-28T04:52:48.023 回答
1

我遇到了这个问题,并且知道我已经为我正在寻找的模块安装了 pip。表演$ ipython --init为我解决了这个问题。

于 2014-11-03T15:49:08.880 回答
1

StackOverflow 中的其他人发布了此链接:http ://www.vankouteren.eu/blog/2009/06/getting-ipython-readline-and-auto-completion-to-work-on-mac-os-x/

它基本上easy_install readline不是发现 readline egg 的安装位置并编辑 ipython bin 脚本以使用此 readline:

  1. 安装“官方”readline:easy_install readline
  2. 发现它在哪里。查看/Library/Python/site-packages/readline-*.egg或查看您的 Virtualenv 对应项
  3. 发现 ipython bin 在哪里:which ipython
  4. 在这个文件中添加一行,在一行之后添加 readline egg 路径import sys

我的 virtualenved ipython bin 脚本工作如下:

#!/Users/alanjds/src/git/cervejeiras/venv/cervejeiras-lfs/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'ipython==0.13.1','console_scripts','ipython'
__requires__ = 'ipython==0.13.1'
import sys

### ONLY LINE ADDED:
sys.path.insert(0, '/Users/alanjds/src/git/cervejeiras/venv/cervejeiras-lfs/lib/python2.6/site-packages/readline-6.2.4.1-py2.6-macosx-10.6-fat.egg')
####

from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('ipython==0.13.1', 'console_scripts', 'ipython')()
    )
于 2013-02-16T18:18:08.677 回答
1

我意识到这是一个非常老的问题,但上面的答案都没有对我有用(这是你在谷歌上搜索这种性质的问题时得到的第一个命中)。

我应该提到这不是 Windows 独有的,我在运行 CentOS 6.5 和 Python 2.7 时遇到了问题

这是我所做的:

apt-get/yum install ncurses-devel
#If you want history in iPython:
apt-get/yum install sqlite-devel
easy_install ipython readline
ipython

In [1]: from 
Display all 391 possibilities? (y or n)

如果您没有 -devel 软件包,则在链接它们并构建鸡蛋时,您的安装将失败。希望这对其他人有帮助!

于 2014-07-15T17:10:39.510 回答
0

我不得不mv ~/.ipython{,.bak}在我的情况下。

于 2015-01-20T15:32:44.577 回答
0

我通过安装绝地语言服务器解决了我的问题:

pip install -U jedi-language-server

PS,我在虚拟环境中从 Conda 安装了 Ipython,并在激活环境时使用了上述命令。

于 2021-05-04T07:26:00.000 回答
0

如果您使用 Jupyter 笔记本,并且在尝试此处帖子中建议的所有步骤后仍然可以正常工作,您可能需要检查您是否尝试在函数定义中使用 Tab 自动完成功能。如果您的导入语句是如下函数的一部分,您将不会获得 Tab 自动完成功能。您需要将导入语句放在函数之外,并在请求包自动完成之前执行一次。

def myfunction():
    import pandas as pd
    import numpy as np

    a = pd.DataFrame(np.random.normal(1,3, (4,4))
    return a
于 2016-12-03T22:56:30.203 回答
0

要检查 ipython 及其使用的模块是否匹配,请运行pip check ipython.
对于我在 2021 年 7 月使用 ipython 7.25 的配置,这给出了一个很好的明确警告:

ipykernel 6.0.1 有要求 importlib-metadata<4; python_version < "3.8.0",但你有 importlib-metadata 4.6.0。

您当然可能会看到不同的警告——这只是一个示例,与制表符完成无关。

然后降级它,例如 pip install 'importlib-metadata<4' #不要忘记'引号'

成功卸载 importlib-metadata-4.6.0
成功安装 importlib-metadata-3.10.1


也很有用:
  • pip list-- $PYTHONPATH 中的所有内容,包括版本和位置
  • pip check- 一切
  • pip show ipython--

需要:traitlets、pygments、jedi、decorator、pickleshare、pexpect、appnope、matplotlib-inline、setuptools、prompt-toolkit、backcall

但要查看所需的版本,您必须查看 .../site-packages/ipython-*.dist-info/METADATA

于 2021-07-05T11:05:32.020 回答
0

我在使用 numpy 库时遇到了同样的问题。问题出在 ipython 或 jupyter notebook 的特定版本上,只需更新 ipython 或 jupyter 即可解决。如果您使用的是 anaconda 或 miniconda 之类的 conda 环境,请使用以下命令在该环境中更新 ipython

conda update ipython

如果是 anaconda,您还需要更新 q​​tconsole

conda update qtconsole

有时 anaconda 会限制 ipython 的更新然后尝试

conda update -all

如果您没有使用环境,则直接使用 pip 更新

pip update ipython
于 2020-03-27T11:53:42.120 回答
-1

ipython 需要 Pyreadline。安装 pyreadline。这是在 Windows 7 中完成的。获取 pyreadline zip、pyreadline-master.zip 并解压缩。在 powershell 中将目录更改为 uzipped pyreadline,确保在 Path 中设置了 python,然后输入命令python setup.py install这将在 C:\Python27\Lib\site-packages 中安装 pyreadline

于 2014-05-29T23:45:43.277 回答