【问题标题】:TAB completion does not work in Jupyter Notebook but fine in iPython terminalTAB 完成在 Jupyter Notebook 中不起作用,但在 iPython 终端中很好
【发布时间】:2023-03-30 22:40:01
【问题描述】:

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

任何帮助将不胜感激!

【问题讨论】:

  • 仅供参考,在我的情况下,运行命令 $ conda update readline,现在 TAB 完成在 Jupyter Notebook 中工作正常。但我还是不知道为什么。

标签: ipython-notebook readline jupyter tab-completion ubuntu-15.10


【解决方案1】:

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

pip3 install jedi==0.17.2

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

【讨论】:

【解决方案2】:

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

我只需要调用新单元格中的对象

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

【讨论】:

    【解决方案3】:

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

    conda install -c anaconda jedi
    

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

    %config Completer.use_jedi = False
    

    【讨论】:

      【解决方案4】:
      %config Completer.use_jedi = False
      

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

      【讨论】:

      【解决方案5】:

      你可以添加

      %config IPCompleter.greedy=True

      在 Jupyter Notebook 的第一个盒子中。

      【讨论】:

        【解决方案6】:

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

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

        [IPKernelApp] 错误 |消息处理程序中的异常:Traceback(大多数 最近通话最后):文件 "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 行,运行中 value = future.result() 文件 "D:\apps\miniconda\envs\pydata-book\lib\site-packages\tornado\gen.py", 第 234 行,在包装器中 yielded = ctx_run(next, result) 文件 "D:\apps\miniconda\envs\pydata-book\lib\site-packages\ipykernel\kernelbase.py", 第 580 行,在 complete_request 中 匹配 = 产量 gen.maybe_future(self.do_complete(code, cursor_pos)) 文件 "D:\apps\miniconda\envs\pydata-book\lib\site-packages\ipykernel\ipkernel.py", 第 356 行,在 do_complete 返回 self._experimental_do_complete(code, cursor_pos) 文件 "D:\apps\miniconda\envs\pydata-book\lib\site-packages\ipykernel\ipkernel.py", 第 381 行,在 _experimental_do_complete 完成=列表(_rectify_completions(代码,raw_completions))文件 "D:\apps\miniconda\envs\pydata-book\lib\site-packages\IPython\core\completer.py", 第 484 行,在 rectify_completions 完成 = 列表(完成)文件“D:\apps\miniconda\envs\pydata-book\lib\site-packages\IPython\core\completer.py”, 第 1815 行,已完成 对于 c in self._completions(text, offset, _timeout=self.jedi_compute_type_timeout/1000): File "D:\apps\miniconda\envs\pydata-book\lib\site-packages\IPython \core\completer.py", 第 1858 行,在 _completions 中 匹配文本,匹配,匹配源,绝地匹配 = self._complete( 文件 "D:\apps\miniconda\envs\pydata-book\lib\site-packages\IPython\core\completer.py", 第 2026 行,在 _complete 完成 = self._jedi_matches(文件“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\site-packages\jedi\api_init. py", 第 725 行,在 init 中 super().init(code, environment=environment, TypeError: init() got an unexpected keyword argument 'column'

        我突出显示了几条 jedi 消息,但这一切都表明这是与安装的 jedi 版本有关的问题。

        【讨论】:

        • 我也遇到过这个问题。使用 nb_conda_kernels 时的一个注意事项:我必须在与 ipykernel 相同的环境中将 jedi 降级到 0.17.2,而不是我安装了 jupyterlab 的环境。
        【解决方案7】:

        就我而言,在运行pip install pyreadline 之后,我需要在完成工作之前重新执行 Jupyter 中的所有行。我一直想知道为什么它适用于 IPython 而不是 Jupyter。

        【讨论】:

          【解决方案8】:

          在我的例子中,我在 Debian Linux 上安装了 miniconda,并且很可能在 Debian 中包含的以前的 Python 中遇到了问题。以下几行解决了我的问题:

          conda update conda
          conda update --all
          

          解决方案取自here,基于我在终端中写np.<tab>后在IPython中遇到的错误:

          No such file or directory: '/home/user/miniconda3/lib/python' 
          

          【讨论】:

          • 这些步骤让标签自动完成功能在 Windows 10/Anaconda 上为我工作。
          【解决方案9】:

          上述 Sagnik 的答案(2020 年 12 月 20 日)适用于 Windows 10。

          pip3 安装绝地==0.17.2

          [对不起,我将其发布为答案而不是评论。我还没有发表评论的权限。 ]

          【讨论】:

            【解决方案10】:

            我发现的解决方法是将中间结果分配给一个临时变量。然后在单独的单元格中,使用临时变量上的选项卡进行自动完成。

            temp = pd.描述

            温度。制表符

            【讨论】:

              【解决方案11】:

              我遇到了同样的问题,使用解决了

              conda install -c anaconda jedi
              

              【讨论】:

                【解决方案12】:

                遇到同样的问题,对我来说以下工作

                conda install -c anaconda jedi
                

                【讨论】:

                  【解决方案13】:

                  我为这个问题找到的最佳解决方法是创建一个新环境。如果您使用 Anaconda,只需创建一个新环境即可解决问题。当然,您必须重新安装一些库,但这一切都是值得的。

                  【讨论】:

                    【解决方案14】:

                    F.wo.huang 对 OP 的评论在我的 anaconda 环境中对我有用:

                    condo update readline
                    

                    【讨论】:

                      【解决方案15】:

                      创建一个新的环境变量帮助我解决了这个问题。

                      使用.conda 中的environments.txt 内容作为路径。

                      【讨论】:

                        【解决方案16】:

                        我在使用 miniconda 时遇到了同样的问题, 我切换到anaconda,这似乎解决了这个问题。 PS。我已经尝试了所有在网上可以找到的方法,但除了切换到 anaconda 之外,没有任何解决方法。

                        【讨论】:

                          【解决方案17】:

                          正如五年前提出的问题,当时的答案可能有所不同......但如果今天有人在谷歌上搜索,我想加两分钱:用户 Sagnik 的答案及以上对我有用。

                          要补充一点的是,如果运行 anaconda,你可以像我一样做:简单

                          • 启动 anaconda-navigator 软件,
                          • 在我的环境中找到jedi包,
                          • 点击绝地右侧的小复选框
                          • 在“标记为特定版本安装”下,选择 0.17.2

                          重启内核后一切正常:)

                          【讨论】:

                            【解决方案18】:

                            尝试下面讨论的命令here

                            pip install -U ipython==7.20

                            【讨论】:

                              【解决方案19】:

                              我在 windows pc 中的 conda 虚拟环境下遇到了同样的问题,将 jedi 降级到 0.17.2 版本为我解决了这个问题。

                              conda install jedi==0.17.2

                              【讨论】:

                                猜你喜欢
                                • 2021-03-21
                                • 1970-01-01
                                • 2017-03-24
                                • 2019-03-10
                                • 2020-05-20
                                • 2018-10-25
                                • 1970-01-01
                                • 2021-03-07
                                • 2017-06-12
                                相关资源
                                最近更新 更多