vim - deoplete/jedi 不为自动完成选择 python 虚拟环境
问题描述
我正在使用 neovim v0.3.2-953 进行带有以下插件的 python 开发。
Plug 'Shougo/deoplete.nvim',
Plug 'zchee/deoplete-jedi',
Plug 'davidhalter/jedi-vim'
自动完成不适用于我的虚拟环境中的deoplete
任何库,并且仅显示安装在系统 python 中的模块的完成。
在 nvim 中,我打印了python
nvim 正在使用的二进制文件,它确实来自我的虚拟环境。下面是我的deoplete
配置设置的样子
let g:python_host_prog = '/usr/bin/python2.7'
let g:python3_host_prog = '/usr/bin/python3'
我已经neovim
为两者安装了 python 包python2
,python3
所以当我使用系统 python 时,python 绑定工作正常,但在虚拟环境中,自动完成不起作用。
最初我认为这可能是由于neovim
虚拟环境中没有安装 python 包,所以我neovim
也安装了这个包,但它仍然没有工作。
以下是我经历的完整步骤
1. Created the virtual env and installed neovim python package in it (though i have separate virtual envs for neovim dedicated for python2 and python3 )
2. Activate the virtual env and launch neovim
3. Open a python file and test if the autocompletion works for modules in virtual env
如果我在这里遗漏了什么,谁能指导我
解决方案
下面是我的 deoplete 配置设置的样子:
let g:python_host_prog = '/usr/bin/python2.7'
let g:python3_host_prog ='/usr/bin/python3'
您的配置已设置为系统解释器。要使用虚拟环境,请按照我在下面提到的方式进行设置。
如果您使用的是 virtualenv,建议您专门为 Neovim 创建环境。这样,您将不需要在每个 virtualenv 中安装 neovim 包。创建它们后,将以下内容添加到 init.vim 文件中:
let g:python_host_prog = '/full/path/to/neovim2/bin/python'
let g:python3_host_prog = '/full/path/to/neovim3/bin/python'
Deoplete 只需要 Python 3。有关:h nvim-python-quickstart
详细信息,请参阅。
还可以尝试将这些添加到您的 init.vim 以正确自动完成:
let g:deoplete#enable_at_startup=1
let g:deoplete#auto_complete=1
推荐阅读
- php - 在php中为每四个分组数组
- sql - sql 查询在 zeppelin 中转换为 spark lang
- python - 检查应用程序是否正在运行,而不是作为后台进程
- php - 如何将 JSON 字符串读取到多维数组
- python - 在python中删除或替换矩阵
- css - 如果 IE 浏览器缩放到 150% 和 175%,则日期字段问题
- spring-boot - 运行 Spring 或其他 Java 网络应用程序时是否应该避免公共网络防火墙异常 (Windows)?
- javascript - 如何生成随机数以产生固定结果?
- c - 当它不返回值时,这个递归函数如何正常工作?
- c# - 试图在一个页面上使用两个 IFrame,每个 IFrame 都指向一个 aspx 页面。如何触发从一个背后的代码到另一个的刷新