IPython上的标签完成似乎不起作用。例如,
import numpy
numpy.<tab>
只需添加一个标签。
import numpy
num<tab>
也添加了一个标签。你能否为这个问题提出一些可能的原因?我正在运行Windows 7和Python 2.6.5。
答案 0 :(得分:90)
确保已安装pyreadline库。选项卡完成和其他IPython功能需要它 - 在Windows中它没有附带IPython包,你必须单独安装 -
> pip install pyreadline
答案 1 :(得分:66)
如果有人使用最近的 7.19.0
并且自动完成不起作用,请尝试将 jedi
降级为 0.17.2
:
pip install jedi==0.17.2
有关详细信息,请参阅 https://github.com/ipython/ipython/issues/12740。
答案 2 :(得分:9)
您的ipythonrc文件可能已过期。 尝试运行
ipython -upgrade
答案 3 :(得分:9)
pip uninstall jedi --yes
和
pip install pyreadline
当前带有 Jupyter notebook 的 Ipython 不需要 jedi.. 所以你只需要用上面的命令卸载它。
我从here那里得到的。
答案 4 :(得分: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
答案 5 :(得分:3)
我遇到了这个问题。 我通过降级python-parso软件包来解决
降级python-parso软件包(0.8.0-1 => 0.6.2-1)
答案 6 :(得分:2)
经典的'你试过把它关掉再打开'给我工作。
pip uninstall ipython
pip install ipython
答案 7 :(得分:2)
这肯定会在我的情况下起作用
conda install ipython
pip install jedi==0.17.2
答案 8 :(得分:1)
截至目前,在OSX上,pip安装的ipython没有给标签完成,pyreadline release.py被破坏了..什么是WFM:
easy_install ipython readline
因人而异。
答案 9 :(得分: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:
easy_install readline
/Library/Python/site-packages/readline-*.egg
或您的Virtualenv对应which ipython
import sys
行之后添加readline egg路径。我的虚拟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')()
)
答案 10 :(得分: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软件包,那么当需要链接它们并构建鸡蛋时,您的安装将会失败。希望这有助于其他人!
答案 11 :(得分: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。
您当然可能会看到不同的警告—— 这只是一个例子,与 tab 补全无关。
然后将其降级,例如
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
答案 12 :(得分:0)
我通过安装 jedi-language-server 解决了我的问题:
pip install -U jedi-language-server
PS,我在虚拟环境中从 Conda 安装了 Ipython,并在激活环境时使用了上述命令。
答案 13 :(得分:0)
我在numpy库中遇到了同样的问题。问题出在特定版本的ipython或jupyter笔记本上,只需更新ipython或jupyter即可解决。 如果您使用的是cona环境(例如anaconda或miniconda),请使用
在该环境中更新ipythonconda update ipython
如果是水蟒,还需要更新qtconsole
conda update qtconsole
有时anaconda会限制ipython的更新,然后尝试
conda update -all
如果您不使用环境,则可以使用pip直接更新
pip update ipython
答案 14 :(得分:0)
降级iPython可以解决问题。
pip install --upgrade ipython==5.8.0
答案 15 :(得分:0)
如果您使用Jupyter笔记本,并且在尝试了此处帖子中建议的所有步骤后仍然可以使Tab自动完成工作,您可能需要检查是否尝试在函数定义中使用Tab自动完成。如果您的import语句是函数的一部分,如下所示,您将无法获得Tab自动完成。您需要将import语句放在函数外部,并在要求在软件包上自动完成之前执行它们一次。
def myfunction():
import pandas as pd
import numpy as np
a = pd.DataFrame(np.random.normal(1,3, (4,4))
return a
答案 16 :(得分:0)
在我的情况下我必须mv ~/.ipython{,.bak}
。
答案 17 :(得分:0)
我遇到了这个问题,并且知道我为我正在寻找的模块安装了点子。执行$ ipython --init
为我解决了问题。
答案 18 :(得分:0)
ipython需要Pyreadline。安装pyreadline。这是在Windows 7中完成的。获取pyreadline zip,pyreadline-master.zip,解压缩。在powershell中将目录更改为uzipped pyreadline,确保在Path中设置python,并输入命令python setup.py install
这将在C:\ Python27 \ Lib \ site-packages
答案 19 :(得分:-1)
您的 ipython 和 jedi 可能彼此不兼容。尝试使用这个:
pip install -U ipython==7.20