使用 Jedi 的 Spyder 4 代码自动完成在编辑器中(仍然)很慢

Spyder 4 code autocompletion with Jedi is (still) slow within the editor

我将 Spyder 4Jedi 一起用于 Anaconda3 中的代码自动完成:

# 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 运行 更快?好点了吗solutions/alternatives?

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

我们希望将来能解决这个问题。

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

对于 Spyder 开发人员,请查看 reading/saving 文件中的高延迟(>200 毫秒)对自动完成的影响。我已经使用 Spyder 很多年了,讨厌看到它因为这个错误而陷入困境。