标签: python-jedi

VS Code Python 无法识别匹配语句

当我在 VS Code 中使用 Python 中的匹配大小写语句时,它会在“问题”选项卡中显示红色波浪线和错误:

如上所述 VS Code 的屏幕截图

python python-jedi visual-studio-code vscode-python python-3.10

19
推荐指数
1
解决办法
1万
查看次数

哪个更有效:Python文档字符串或类型提示?

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

def function_with_types_in_docstring(param1, param2):
    """Example function with types documented in the docstring.

    :type param1: int
    :type param2: str
    :rtype: bool
    """

def function_with_pep484_type_annotations(param1: int, param2: str) -> bool:
    """Example function with PEP 484 type annotations."""
Run Code Online (Sandbox Code Playgroud)

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

python docstring type-hinting python-3.x python-jedi

14
推荐指数
1
解决办法
2035
查看次数

VSCode 中的失控绝地语言任务

每次我关闭 VSCode(在运行一些 Python 脚本之后)时,我都会有一个 Python 任务在我的 M1 MacBook Air 上运行 90-100% CPU 的终端中徘徊,我每次都必须手动终止它。我在 PID 上运行了以下命令:

ps aux | grep <PID>
Run Code Online (Sandbox Code Playgroud)

它每次都返回相同的东西......

Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.8/Resources/Python.app/Contents/MacOS/Python /Users/<user>/.vscode/extensions/ms-python.python-2021.2.625869727/pythonFiles/runJediLanguageServer.py
Run Code Online (Sandbox Code Playgroud)

我检查了我的 VSCode 扩展,我没有安装任何“绝地”扩展,但也许它是其他扩展的一个挥之不去的任务。任何想法如何解决这一问题?

python python-jedi visual-studio-code

12
推荐指数
2
解决办法
2039
查看次数

python jedi:如何检索实例的方法?

我构建了简单的文本编辑器,具有一些屏幕阅读软件的辅助功能.我正在使用Python for .NET(pythonnet)来显示包含富文本框的表单.当用户在一段时间后按Tab键时,它会弹出一个上下文菜单,其中包含所选元素的完成.好吧,它适用于Python对象,但它不适用于.net活动对象,没有解决这个问题的方法.现在,我想构建一个TreeView对象,其中包含我正在编辑的模块的所有名称和定义.

所以,例如我输入:

import sys
import os
lst = list()
Run Code Online (Sandbox Code Playgroud)

等...如果我使用我的源代码的jedi.names,我可以检索os,sys和lst.对于每个名称,我想要检索子定义,例如sys和os模块的函数,以及lst的方法.我找不到用jedi做到这一点的方法:

names = jedi.names(MySource)
names[0].defined_names() # works for sys
names[1].defined_names() # works for os
names[2].defined_names() # doesn't work for lst instance of list().
Run Code Online (Sandbox Code Playgroud)

有什么建议?我试图使用越来越多的编辑器,但可访问性支持非常糟糕......

python autocomplete python-jedi

10
推荐指数
1
解决办法
597
查看次数

emacs-jedi没有找到numpy完成

我安装了emacs-jedi来为emacs中的python获取一些代码.总的来说,我必须说我印象非常深刻!它开箱即用,可以快速找到内置库的完成情况.但是,我将python用于科学目的,并依赖于numpy和scipy来完成我的工作.出于某种原因,我没有完成这些模块的完成.

例:

import numpy 

testVector = numpy.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)

现在输入testVector.等待,没有任何表现

python emacs numpy python-jedi

8
推荐指数
2
解决办法
3152
查看次数

无法获得jedi-vim插件

我正在尝试使用jedi-vim插件进行Python自动完成,但我无法让它工作.

我有Vim 7.3,这就是我做的:

1-克隆代码

git clone http://github.com/davidhalter/jedi-vim path/to/bundles/jedi-vim
Run Code Online (Sandbox Code Playgroud)

2-复制jedi-vim/plugin/jedi.vim~/.vim/plugin/

3-复制jedi-vim/doc/jedi-vim.txt~/.vim/doc/

现在当我打开vim时,进入插入模式并输入

import wave
wave.
Run Code Online (Sandbox Code Playgroud)

没有任何反应,虽然文档指定Autocompletion is also triggered by typing a period in insert mode,如果我尝试<Ctrl-Space>我得到以下错误

E29: No inserted text yet
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)

我检查过:map,似乎<Ctrl-Space>没有使用:

n  [m          *@:call <SNR>21_Python_jump('?^\s*\(class\|def\)')<CR>
n  [[          *@:call <SNR>21_Python_jump('?^\(class\|def\)')<CR>
n  ]m          *@:call <SNR>21_Python_jump('/^\s*\(class\|def\)')<CR>
n  ]]          *@:call <SNR>21_Python_jump('/^\(class\|def\)')<CR>
n  gx            <Plug>NetrwBrowseX
n  <Plug>NetrwBrowseX * :call netrw#NetrwBrowseX(expand("<cWORD>"),0)<CR>
Run Code Online (Sandbox Code Playgroud)

由于我使用错误<Ctrl-Space> …

vim python-jedi jedi-vim

7
推荐指数
4
解决办法
1万
查看次数

virtualenvs可以回退到用户包而不是系统包吗?

我在Emacs中使用Jedi进行Python自动完成,但它不是我的代码的依赖项所以我不想把它放在我的代码中requirements.txt.(其他开发人员可能不使用Jedi编辑器插件,当我部署到Heroku时肯定不需要它.)

但绝地必须可以从我的virtualenv获得,以便运作,即如果我不能

import jedi
Run Code Online (Sandbox Code Playgroud)

它不起作用.

有没有一种很好的方法来安装Jedi用户全局,以便它可以在我的所有virtualenvs中使用?

我想要的是

  1. 绝地安装到~/.local/lib/python2.7/site-packages/具有pip--user标志,然后
  2. 使用等效--system-site-packages标志创建我的virtualenv ,但是对于用户包而不是系统包.

我目前的解决方法是pip install jedi在每个virtualenvs.然后,当我添加新的依赖项I pip install foopip freeze > requirements.txt,然后jedi在提交之前手动删除文件中的一些其他内容.显然,这是耗时且容易出错的.

有人有更好的解决方案吗?

python pip virtualenv python-jedi

6
推荐指数
1
解决办法
695
查看次数

Vim supertab和jedi-vim

发布作为后续如何检查SuperTab和jedi-vim是否被激活?并完成了Ingo Karkat提出的建议.现在我想知道什么是破碎的以及我如何解决它.

这是输出:

:verbose imap <tab>
i  <Tab>         <Plug>SuperTabForward
    Last set from ~/.vim/bundle/supertab/plugin/supertab.vim
Run Code Online (Sandbox Code Playgroud)

哪个看起来对我好,并且......

:scriptnames
  1: /etc/vimrc
  2: /usr/share/vim/vim72/syntax/syntax.vim
  3: /usr/share/vim/vim72/syntax/synload.vim
  4: /usr/share/vim/vim72/syntax/syncolor.vim
  5: /usr/share/vim/vim72/filetype.vim
  6: /usr/share/vim/vimfiles/ftdetect/puppet.vim
  7: /usr/share/vim/vim72/ftplugin.vim
  8: /home/johannesw/.vimrc
  9: /usr/share/vim/vim72/ftoff.vim
 10: /home/johannesw/.vim/bundle/vundle/autoload/vundle.vim
 11: /home/johannesw/.vim/bundle/vundle/autoload/vundle/config.vim
 12: /usr/share/vim/vim72/indent.vim
 13: /usr/share/vim/vim72/syntax/nosyntax.vim
 14: /home/johannesw/.vim/bundle/vim-fugitive/plugin/fugitive.vim
 15: /home/johannesw/.vim/bundle/vim-easymotion/plugin/EasyMotion.vim
 16: /home/johannesw/.vim/bundle/vim-easymotion/autoload/EasyMotion.vim
 17: /home/johannesw/.vim/bundle/vim-rails/plugin/rails.vim
 18: /home/johannesw/.vim/bundle/L9/plugin/l9.vim
 19: /home/johannesw/.vim/bundle/L9/autoload/l9.vim
 20: /home/johannesw/.vim/bundle/FuzzyFinder/plugin/fuf.vim
 21: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf.vim
 22: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/buffer.vim
 23: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/file.vim
 24: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/coveragefile.vim
 25: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/dir.vim
 26: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/bookmarkfile.vim
 27: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/bookmarkdir.vim
 28: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/tag.vim
 29: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/buffertag.vim
 30: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/taggedfile.vim
 31: /home/johannesw/.vim/bundle/FuzzyFinder/autoload/fuf/jumplist.vim
 32: …
Run Code Online (Sandbox Code Playgroud)

vim plugins supertab python-jedi jedi-vim

5
推荐指数
1
解决办法
5423
查看次数

使用emacs-jedi自动导入模块

使用ropemacs,您可以执行以下操作:

M-x rope-auto-import
Run Code Online (Sandbox Code Playgroud)

这会分析代码(我假设)并导入丢失的模块,例如,如果我写:

datetime.now()
Run Code Online (Sandbox Code Playgroud)

它应该通过添加此行来为我导入:

from datetime import datetime
Run Code Online (Sandbox Code Playgroud)

(它总是使用from ... import ...表格)

emacs-jedi中有类似的功能吗?

python emacs autocomplete python-jedi emacs-jedi

5
推荐指数
1
解决办法
1061
查看次数

关闭 Jedi-Vim 中的所有自动代码完成

我正在尝试在 vim 中使用 python-jedi,但目前它完全无法使用,因为它试图在奇怪的时间完成编码。

我添加了以下行:

 let g:jedi#popup_on_dot = 0
Run Code Online (Sandbox Code Playgroud)

到我的 vimrc 文件,这确实停止了“.”上的自动完成。但是当我尝试在逗号后添加空格到以下代码时:

upper_blue = np.array([130,255,255])
Run Code Online (Sandbox Code Playgroud)

自动完成不断弹出,似乎每当我在方括号内时,但它与数组无关。

我也安装了 pymode,但我确实关闭了绳索功能……我承认我不知道如何完全关闭 pymode。

VimRC:

    " Better command-line completion
set wildmenu

" Show partial commands in the last line of the screen
set showcmd

" Highlight searches (use <C-L> to temporarily turn off highlighting; see the
" mapping of <C-L> below)
set hlsearch

" Modelines have historically been a source of security vulnerabilities. As
" such, it may be a good idea to disable them …
Run Code Online (Sandbox Code Playgroud)

python-jedi

5
推荐指数
1
解决办法
4026
查看次数