突然(可能是在更新软件包之后)vim停止使用YouCompleteMe并抛出:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.7/io.py", line 51, in <module>
import _io
ImportError: No module named _io
(当我尝试使用:python import io
从vim内部导入io时也会发生这种情况。)
我在过去几个小时里一直在争夺这个问题,不知道问题是什么,重新安装了python和vim好几次,无论是来源还是来自aptitude都没有区别。我注意到,与命令行相比,vim中的python使用了一个有趣的路径:
~$ python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys; print sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
>>>
来自vim:
:python import sys; print sys.path
['/usr/lib/python27.zip', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '
/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-pa
ckages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode', '_vim_path_']
我没有使用virtualenv
(我注意到有人因virtualenv
设置而遇到此问题)。
还必须指出Python在命令行中工作得非常好,我可以在启动解释器时愉快地导入io
,并且这种情况发生在从源代码编译的vim 8和从aptitude编译的vim-nox。
python如何在vim中看到path
这是一个问题吗?我知道如何解决这个问题。
答案 0 :(得分:1)
YouCompleteMe提供了g:ycm_server_python_interpreter选项来设置特定的解释器。
只需将let g:ycm_server_python_interpreter = path/to/your/interpreter
中的.vimrc
添加到您喜欢的解释器的路径即可。