问题标签 [python-jedi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
86 浏览

python-3.x - python3中多处理模块的绝地完成不正确

使用使用 jedi 的 atom 的 autocomplete-python 我发现multiprocessingpython3. 这是一个例子:

模块实际上有process包,但它在模块范围内也有Process类:

比较 python2 和 python3 的multiprocessing模块,我发现它们略有不同。现代版本导入默认上下文命名空间的命名空间:

不幸的是,我不知道如何解决这个问题或解决它。你有什么建议吗?

0 投票
1 回答
208 浏览

python - Python jedi 自动完成功能越来越慢

使用绝地自动完成库,我发现每次调用Script.completions()都会使连续调用变慢。

在下面的代码中,我重复了我的run函数三遍。我不清楚为什么,但每一个都比前一个花费更长的时间。

结果:

感谢您就为什么会发生这种情况以及我能做些什么来防止它提供任何建议。

0 投票
1 回答
140 浏览

python - 返回对象的python绝地代码完成

我尝试让 Ne​​ovim 使用 jedi 来完成代码,但是当我开始对返回的对象进行代码完成时,我得到了奇怪的行为。看起来 jedi 无法确定返回的对象类型,但在某些情况下可以。

万一我在我的配置中混合了一些东西,我用 Atom 尝试了它,它做了完全相同的事情。

在第一张图片上,我开始代码完成,绝地可以识别对象类型。在第二个它没有,但它看起来像我完全相同的事情。

也许任何人都可以提供帮助或以前遇到过同样的问题。

代码完成成功

代码完成不成功

0 投票
0 回答
871 浏览

sublime-text-plugin - 绝地在崇高文本中自动完成失败

在某些情况下,绝地在崇高文本中无法自动完成:

在这两种情况下我都有这个错误:

如何解决这个问题?

PS:绝地版本 - 0.10.0,Sublime Text - 3126(Python 3.3.6)

0 投票
1 回答
269 浏览

numpy - 如何在 python 中使用 jedi 获取 numpy 函数参数的类型(来自 docstrings)

理想情况下,我想要一个如下工作的函数(适用于各种 numpy 函数):

并返回:

我了解 jedi 支持从文档字符串中提取此信息,但我无法使其工作。使用绝地可以得到这样的东西吗?

0 投票
2 回答
8223 浏览

python - 哪个更有效:Python 文档字符串还是类型提示?

我想使用Jedi为我的 Python 代码添加一些对自动完成的支持。这可以通过使用函数文档字符串或类型提示(或两者)来完成。

哪种记录类型的方法在内存使用和运行时间方面增加的开销更少?我首先对 Python 代码本身的效率感兴趣,然后是 Jedi。

0 投票
1 回答
764 浏览

vim - 没有 Ctrl-Space 的 Python Jedi 自动完成

Vim 中的 Jedi 允许通过按 Ctrl-Space 在 Python 中自动完成。

有没有办法让自动完成功能自动工作而无需按 Ctrl-Space 来调出智能感知/自动完成框?

谢谢!

0 投票
0 回答
151 浏览

python-jedi - jedi 解释器完成属性失败

我想改进 python 控制台中的自动完成功能,这是我正在从事的项目的一部分。虽然 jedi 通常对此非常有效,但有一种特殊情况无法找到任何完成建议:使用@property装饰器定义为方法的类的属性。以下示例应解释我的问题:

执行脚本返回:

@property调用带有装饰器的方法时,绝地没有找到完成。“正常”方法工作得很好。我在这里以错误的方式使用绝地,还是这只是绝地难以解决的案例之一?

在此先感谢您的帮助!

PS:我还尝试将整个代码直到a = A()放入一个字符串中,并使用它Script来代替Interpreter完成。有趣的是,这也成功地为@property装饰方法找到了正确的完成。

0 投票
1 回答
256 浏览

python - 是否可以将 Jedi 嵌入到未安装 Python 的系统上的应用程序中?

我正在开发使用 Python 作为嵌入式脚本语言的(Windows 和 Mac)应用程序。

该应用程序包括一个内部文本编辑器,使用Scintilla实现,我使用Jedi进行自动完成,通常效果很好。

但是,在没有单独安装 Python 的计算机上尝试自动完成时,Jedi 会引发错误:

jedi.api.environment.InvalidPythonEnvironment

无法获取“python”的版本信息:

FileNotFoundError(2, 'The system cannot find the file specified', None, 2, None)

深入研究代码,我可以看到抛出的底层代码是FileNotFoundErrorJedi 尝试python使用subprocess.Popen. 计算机上未安装 Python,因此失败。

我还可以在安装了 Python 的计算机上重现相同的问题,方法是编辑我的环境Path变量以不包含python.exe.

理想情况下,我们不希望应用程序的用户必须安装 Python 才能让自动完成功能正常工作。

我的问题:

  1. 是否有可能让 Jedi产生子进程,而是在它本身正在运行的 Python 的同一个实例中运行它的代码?我在文档或处理环境的源代码中找不到任何关于此的内容,从这里的讨论中推断,我怀疑答案可能是否定的。

  2. 是否有可能以某种方式让 Jedi 使用python37.dll我们的应用程序用于其功能的相同内容,而不是寻找.exe不存在的文件?

  3. 有什么方法可以在我们现有的应用程序安装中进行某种最小的 Python 安装,使用相同的 DLL/Python Lib 等?我怎么能这样做呢?

  4. 有没有其他方法可以让 Jedi 自动完成功能在我们的应用程序中运行,而无需用户安装 Python,或者在我们的构建过程中包含完整的 Python 安装程序?

0 投票
1 回答
79 浏览

python - Jedi 补全不适用于使用 Image.open() 方法创建的 Image 对象

我正在使用 deoplete-jedi 在 Neovim 中提供自动完成功能。我发现如果在使用Pillow时使用Image.open()方法创建 Image 对象实例,则自动完成功能不起作用。但是对于使用Image.new()方法创建的 Image 实例,自动完成工作正常。

经过大量调试,我终于找到了原因。因为 Jedi 包无法为Image.open()方法创建的 Image 实例提供补全。

下面的代码显示了差异:

由于这两种方法都返回一个 Image 对象,我不知道为什么自动完成的行为不同。

版本信息

  • Python:Python 3.6.8
  • 绝地:0.13.3
  • 枕头:5.2.0