问题标签 [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.
python-3.x - python3中多处理模块的绝地完成不正确
使用使用 jedi 的 atom 的 autocomplete-python 我发现multiprocessing
在python3
. 这是一个例子:
模块实际上有process
包,但它在模块范围内也有Process
类:
比较 python2 和 python3 的multiprocessing
模块,我发现它们略有不同。现代版本导入默认上下文命名空间的命名空间:
不幸的是,我不知道如何解决这个问题或解决它。你有什么建议吗?
python - Python jedi 自动完成功能越来越慢
使用绝地自动完成库,我发现每次调用Script.completions()
都会使连续调用变慢。
在下面的代码中,我重复了我的run
函数三遍。我不清楚为什么,但每一个都比前一个花费更长的时间。
结果:
感谢您就为什么会发生这种情况以及我能做些什么来防止它提供任何建议。
sublime-text-plugin - 绝地在崇高文本中自动完成失败
在某些情况下,绝地在崇高文本中无法自动完成:
在这两种情况下我都有这个错误:
如何解决这个问题?
PS:绝地版本 - 0.10.0,Sublime Text - 3126(Python 3.3.6)
numpy - 如何在 python 中使用 jedi 获取 numpy 函数参数的类型(来自 docstrings)
理想情况下,我想要一个如下工作的函数(适用于各种 numpy 函数):
并返回:
我了解 jedi 支持从文档字符串中提取此信息,但我无法使其工作。使用绝地可以得到这样的东西吗?
python - 哪个更有效:Python 文档字符串还是类型提示?
我想使用Jedi为我的 Python 代码添加一些对自动完成的支持。这可以通过使用函数文档字符串或类型提示(或两者)来完成。
哪种记录类型的方法在内存使用和运行时间方面增加的开销更少?我首先对 Python 代码本身的效率感兴趣,然后是 Jedi。
vim - 没有 Ctrl-Space 的 Python Jedi 自动完成
Vim 中的 Jedi 允许通过按 Ctrl-Space 在 Python 中自动完成。
有没有办法让自动完成功能自动工作而无需按 Ctrl-Space 来调出智能感知/自动完成框?
谢谢!
python-jedi - jedi 解释器完成属性失败
我想改进 python 控制台中的自动完成功能,这是我正在从事的项目的一部分。虽然 jedi 通常对此非常有效,但有一种特殊情况无法找到任何完成建议:使用@property
装饰器定义为方法的类的属性。以下示例应解释我的问题:
执行脚本返回:
当@property
调用带有装饰器的方法时,绝地没有找到完成。“正常”方法工作得很好。我在这里以错误的方式使用绝地,还是这只是绝地难以解决的案例之一?
在此先感谢您的帮助!
PS:我还尝试将整个代码直到a = A()
放入一个字符串中,并使用它Script
来代替Interpreter
完成。有趣的是,这也成功地为@property
装饰方法找到了正确的完成。
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)
深入研究代码,我可以看到抛出的底层代码是FileNotFoundError
Jedi 尝试python
使用subprocess.Popen
. 计算机上未安装 Python,因此失败。
我还可以在安装了 Python 的计算机上重现相同的问题,方法是编辑我的环境Path
变量以不包含python.exe
.
理想情况下,我们不希望应用程序的用户必须安装 Python 才能让自动完成功能正常工作。
我的问题:
是否有可能让 Jedi不产生子进程,而是在它本身正在运行的 Python 的同一个实例中运行它的代码?我在文档或处理环境的源代码中找不到任何关于此的内容,从这里的讨论中推断,我怀疑答案可能是否定的。
是否有可能以某种方式让 Jedi 使用
python37.dll
我们的应用程序用于其功能的相同内容,而不是寻找.exe
不存在的文件?有什么方法可以在我们现有的应用程序安装中进行某种最小的 Python 安装,使用相同的 DLL/Python Lib 等?我怎么能这样做呢?
有没有其他方法可以让 Jedi 自动完成功能在我们的应用程序中运行,而无需用户安装 Python,或者在我们的构建过程中包含完整的 Python 安装程序?
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