我在jedi-vim repo上观察了一些问题,我发现了:https://github.com/davidhalter/jedi-vim/issues/704和https://github.com/davidhalter/jedi/pull/829/files。
我试着在venv中将lib重命名为python3.5,是的,自动补全可以工作,但是当你运行任何python文件时,它都被破坏了(我的意思是我改了名字,所以这是很正常的)。
对于其他解决方案,我在我的vundle目录中找不到任何名为jedi/evaluate/sys_path.py的文件。
有没有人有办法做到这一点,我已经寻找了很长一段时间,但没有找到任何东西。
提前感谢
发布于 2018-10-11 16:15:31
我在我的pyenv-virtualenv,vim和jedi设置下工作了很长时间。希望能对你有所帮助。
首先,我在~/.vimrc文件中的Vundle块中添加了jedi-vim插件:
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
...
Plugin 'davidhalter/jedi-vim'
call vundle#end() 接下来,我在~/.vimrc中添加了以下python3代码,以分别从pyenv/virtualenv目录中搜索和添加包。遗憾的是,没有activate_this.py脚本可以自动执行此操作
py3 << EOF
import os.path
import sys
import vim
import jedi
if 'VIRTUAL_ENV' in os.environ:
base = os.environ['VIRTUAL_ENV']
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
prev_sys_path = list(sys.path)
import site
site.addsitedir(site_packages)
sys.real_prefix = sys.prefix
sys.prefix = base
# Move the added items to the front of the path:
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
EOF确保您能够在您的本地Python中运行import jedi和import vim。您可以使用以下命令在您的终端中安装它们:
pip3 -install jedi and
pip3 -install vim最后,我在vimrc文件中设置了以下值:
set omnifunc=jedi#completions
let g:jedi#force_py_version = '3'在启动vim之前,请确保使用pyenv activate切换到pyenv环境。只有在这之后,自动补全才能工作。
https://stackoverflow.com/questions/48424438
复制相似问题