【问题标题】:Spyder 4 code autocompletion with Jedi is (still) slow within the editor使用 Jedi 的 Spyder 4 代码自动完成在编辑器中(仍然)很慢
【发布时间】:2020-11-26 17:16:32
【问题描述】:

我使用Spyder 4JediAnaconda3 中自动完成代码:

# Name                    Version                   Build
spyder                    4.1.4                    py37_0
spyder-kernels            1.9.2                    py37_0
jedi                      0.17.1                   py37_0
anaconda-client           1.7.2                    py37_0
anaconda-navigator        1.9.12                   py37_0
conda                     4.8.3                    py37_0
conda-build               3.18.11                  py37_0
ipython                   7.16.1           py37h5ca1d4c_0
python                    3.7.7                h81c818b_4

但编辑器中的代码完成有时效率低下,例如在输入self.<tab> 时。我发现自己在IPython 7.16.1 编码,因为它非常流畅并且可以复制回编辑器。我从 2019 年 12 月就听说了新的 Kite 集成,但它有点 fishy,这让我不禁要问:我们如何才能让 Jedi 在编辑器中运行得更快?有更好的解决方案/替代方案吗?

【问题讨论】:

  • 我在使用默认完成设置时遇到了同样的问题(不确定这是否是 Jedi)。
  • @adr 据我所知是的,Jedi 目前是 Spyder 的默认自动完成引擎。

标签: python-3.x spyder code-completion


【解决方案1】:

Jabro,我完全同意你的看法。使用 spyder 4.1.5、jedi 0.17.1 编辑器窗口中的自动完成速度慢得让人难以忍受,而 ipython 控制台则很好。这是一个对我的案子有很大帮助的建议。 将您正在处理的文件复制到您机器中速度最快的存储介质中。大概是本地连接的 SSD。 我发现即使是 100 行文件位于遥远的文件共享上,自动完成的速度也非常慢。

对于 Spyder 开发人员,请查看读取/保存文件的高延迟 (>200 毫秒) 对自动完成的影响。我已经使用 Spyder 很多年了,讨厌看到它被这个 bug 困住。

【讨论】:

  • 延迟是网络问题,不是 Spyder 问题。所以我不知道我们能做些什么。
【解决方案2】:

这里是 Spyder 维护者)我们知道 Jedi 的代码完成对于大文件(即超过 1000 行代码)来说很慢。目前唯一的解决方案是将文件分解成更小的文件。

我们希望在接下来的三到六个月内通过支持 Rope(另一个代码完成库)来解决这个问题,它比 Jedi 处理大文件要快得多。

【讨论】:

  • 没问题,感谢您的耐心等待。我们知道 Spyder 4 的运行不如我们希望的那样好,但我们正在实现目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 2019-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
相关资源
最近更新 更多