IPython 上的制表符完成似乎不起作用。例如,
import numpy
numpy.<tab>
只需添加一个选项卡。
import numpy
num<tab>
也只需添加一个选项卡。您能否提出一些可能导致此问题的原因?我正在运行 Windows 7 和 Python 2.6.5。
IPython 上的制表符完成似乎不起作用。例如,
import numpy
numpy.<tab>
只需添加一个选项卡。
import numpy
num<tab>
也只需添加一个选项卡。您能否提出一些可能导致此问题的原因?我正在运行 Windows 7 和 Python 2.6.5。
确保你已经安装了pyreadline库。它是制表符补全和其他 IPython 功能所必需的 - 在 Windows 中,它不附带 IPython 包,您必须单独安装它 -
> pip install pyreadline
如果有人在使用最近7.19.0
且自动完成功能不起作用,请尝试降级jedi
到0.17.2
:
pip install jedi==0.17.2
pip uninstall jedi --yes
和
pip install pyreadline
当前带有 Jupyter notebook 的 Ipython 不需要 jedi.. 所以你只需要使用上面的命令卸载它。
我从这里得到的。
您的 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
降级 iPython 就成功了。
pip install --upgrade ipython==5.8.0
经典的“您是否尝试过将其关闭然后重新打开”对我有用。
pip uninstall ipython
pip install ipython
这绝对应该有效,因为它在我的情况下有效
conda install ipython
pip install jedi==0.17.2
我有这个问题。我通过降级 python-parso 包解决了
降级 python-parso 包 (0.8.0-1 => 0.6.2-1)
截至目前,在 OSX 上,安装了 ipython 的 pip 没有完成选项卡,pyreadline release.py 被破坏.. WFM 是什么:
easy_install ipython readline
YMMV。
我遇到了这个问题,并且知道我已经为我正在寻找的模块安装了 pip。表演$ ipython --init
为我解决了这个问题。
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
。我的 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 软件包,则在链接它们并构建鸡蛋时,您的安装将失败。希望这对其他人有帮助!
我不得不mv ~/.ipython{,.bak}
在我的情况下。
我通过安装绝地语言服务器解决了我的问题:
pip install -U jedi-language-server
PS,我在虚拟环境中从 Conda 安装了 Ipython,并在激活环境时使用了上述命令。
如果您使用 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
要检查 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
我在使用 numpy 库时遇到了同样的问题。问题出在 ipython 或 jupyter notebook 的特定版本上,只需更新 ipython 或 jupyter 即可解决。如果您使用的是 anaconda 或 miniconda 之类的 conda 环境,请使用以下命令在该环境中更新 ipython
conda update ipython
如果是 anaconda,您还需要更新 qtconsole
conda update qtconsole
有时 anaconda 会限制 ipython 的更新然后尝试
conda update -all
如果您没有使用环境,则直接使用 pip 更新
pip update ipython
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