TAB完成在Jupyter Notebook中不起作用,但在iPython终端中很好

F.w*_*ang 25 readline tab-completion ipython-notebook jupyter ubuntu-15.10

TAB完成在iPython终端中运行良好,但在Firefox浏览器中不行.

到目前为止,我曾尝试但失败了,

1).运行一个命令$ sudo easy_install readline,

然后写了.egg文件 /usr/local/lib/python2.7/dist-packages/readline-6.2.4.1-py2.7-linux-x86_64.egg,

但TAB完成仍然无法在Jupyter Notebook中使用.

2).也试图找到定位ipython_notebook_config.py or ipython_config.py,但失败了.

我使用Python 3.5和iPython 4.0.0.两者都安装在Ubuntu 15.10中 /usr/share/anaconda3/bin/ipython.

任何帮助,将不胜感激!

Sag*_*nik 104

这是一个已知问题,而绝地就是问题所在。尝试执行:

pip3 install jedi==0.17.2

https://github.com/jupyter/notebook/issues/2435

  • 这是一个对我有用的好答案(ubuntu 20.04,pyhton3.8)。我有绝地版本 0.18。安装 0.17.2 版本后,所有制表符补全问题都消失了。 (14认同)
  • 必须重新运行所有代码(“>>”)才能生效。 (2认同)
  • 我在 Windows 上运行 jupyter lab,这解决了我的选项卡完成问题 (2认同)

shu*_*533 30

我的问题在于我尝试在同一个单元格中调用自动完成并导入.由于导入的东西尚未初始化,因此自动完成功能不起作用.

我只需要调用新单元格中的对象 在此输入图像描述

UPD:或者只是在同一个单元格中运行一次程序来初始化导入


Ami*_*est 19

我刚刚安装了最新的 JEDI,然后帮我解决了这个问题,这是使用 Anaconda 时的命令:

conda install -c anaconda jedi
Run Code Online (Sandbox Code Playgroud)

或者你可能需要尝试这个,在你的 jupyter notebook 顶部复制这一行:

%config Completer.use_jedi = False
Run Code Online (Sandbox Code Playgroud)


小智 15

%config Completer.use_jedi = False
Run Code Online (Sandbox Code Playgroud)

此命令有帮助,但我们需要一次又一次地将其添加到所有笔记本中。

  • 您好,欢迎来到SO!它已经是另一个答案的一部分:/sf/answers/4595338261/ 如果您没有什么需要详细说明的,请考虑对其他答案进行投票并删除您的答案。请阅读[导览](https://stackoverflow.com/tour) 和[如何写出好的答案?](https://stackoverflow.com/help/how-to-answer) (2认同)

rue*_*edi 10

你可以加

%config IPCompleter.greedy=True

在 Jupyter Notebook 的第一个盒子中。


小智 5

我有一个类似的问题,不幸的是无法对帖子发表评论,所以我在这里添加了一个对我有用的简单解决方案。我使用 conda 并且conda list显示我正在运行 jedi-0.18.0。我使用了命令conda install jedi==0.17.2。这很快解决了我的 conda 环境的问题。

附加说明:我通常使用 jupyter-lab,并没有看到生成的错误消息。通过切换到 jupyter notebook,我看到了以下错误:

[IPKernelApp] 错误 | 消息处理程序中的异常:回溯(最近一次调用最后一次):文件“D:\apps\miniconda\envs\pydata-book\lib\site-packages\ipykernel\kernelbase.py”,第 265 行,dispatch_shell yield gen.maybe_future (handler(stream, idents, msg)) 文件“D:\apps\miniconda\envs\pydata-book\lib\site-packages\tornado\gen.py”,第762行,运行值= future.result()文件“D:\apps\miniconda\envs\pydata-book\lib\site-packages\tornado\gen.py”,第 234 行,在包装器中产生 = ctx_run(next, result) 文件“D:\apps\miniconda\ envs\pydata-book\lib\site-packages\ipykernel\kernelbase.py”,第 580 行,在 complete_request 匹配 = yield gen.maybe_future(self.do_complete(code, cursor_pos)) 文件“D:\apps\miniconda\envs \pydata-book\lib\site-packages\ipykernel\ipkernel.py”,第 356 行,jedi _compute_type_timeout/1000):文件“D:\apps\miniconda\envs\pydata-book\lib\site-packages\IPython\core\completer.py”,第1858行,在_completions matching_text、matches、matches_origin、jedi_matches = self ._complete( File "D:\apps\miniconda\envs\pydata-book\lib\site-packages\IPython\core\completer.py", line 2026, in _complete completions = self._jedi_matches( File "D:\apps \miniconda\envs\pydata-book\lib\site-packages\IPython\core\completer.py”,第 1369 行,在jedi_matches 解释器 = jedi .Interpreter(文件“D:\apps\miniconda\envs\pydata-book\ LIB \站点包\绝\ API_初始化py”为,线725,在初始化 超级()。INIT(代码,环境=环境,类型错误:初始化() 得到了一个意外的关键字参数“列”

我突出显示了一些绝地消息,但这都强调这是与安装的绝地版本相关的问题。