IPython选项卡完成不起作用

IPython上的Tab完成似乎没有工作。 例如,

import numpy numpy.<tab> 

只是添加一个选项卡。

 import numpy num<tab> 

只是添加一个选项卡。 你能否提出一些可能的原因来解决这个问题? 我正在运行Windows 7和Python 2.6.5。

确保你已经安装了pyreadline库。 它是需要为制表符完成和其他IPython函数 – 在Windows中它不包含IPython包,你必须单独安装它 –

 > pip install pyreadline 

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

 ipython -upgrade 

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 

经典的“你有没有试过把它关掉”,为我工作。

 pip uninstall ipython pip install ipython 

截至目前,在OSX上,安装ipipthon的ipip不会给tab完成,pyreadline release.py被破坏..什么WFM:

 easy_install ipython readline 

因人而异。

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. 将一行添加到这个文件,在import sys行之后添加readline eggpath。

我的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')() ) 

我意识到这是一个非常古老的问题,但上面的答案都没有为我工作(这是你得到的第一个打击,当你谷歌这种性质的问题)。

我应该提到,这不是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包,你的安装将会失败,当它连接它们并build立卵子。希望这可以帮助其他人!

pyreadline是ipython所需要的。 安装pyreadline。 这是在Windows 7中完成的。获取pyreadline zip, pyreadline-master.zip ,解压缩。 在powershell更改目录到uzippyreadline,确保python设置在path,并input命令python setup.py install这将安装pyreadline在C:\ Python27 \ Lib \ site-packages

我有这个问题,并知道我已经安装了我正在寻找模块的点子。 执行$ ipython --init解决了我的问题。

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

如果您使用Jupyter笔记本,并且尝试了后面提供的所有步骤后仍然可以使Tab自动完成工作,则可能需要检查是否尝试在函数定义中使用Tab自动完成。 如果你的import语句是下面的函数的一部分,你将不会得到Tab自动完成。 您需要将导入语句放在函数之外,并在请求包自动完成之前执行一次。

 def myfunction(): import pandas as pd import numpy as np a = pd.DataFrame(np.random.normal(1,3, (4,4)) return a