2

当我尝试在 vim 中使用 YouCompleteMe 插件时,我收到以下错误:

YouCompleteMe unavailable: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted

但是,只有在虚拟环境中打开 vim 时才会出现此错误。当 virtualenv 不活动时,它可以正常工作。我的猜测是 YouCompleteMe 是用 python 2 编写的,由于某种原因无法从虚拟环境中看到 python2 解释器,但我不知道如何修复它。似乎没有关于该主题的 Stack Overflow 问题,但在 ycm-users Google Group 中出现了类似的问题并且没有得到答复。

我在 Ubuntu 14.04 上,使用 vim 7.4 版。

4

2 回答 2

1

看起来这是一个错误:

https://github.com/Valloric/ycmd/pull/578

在 PR #448 中,我假设站点包路径总是放在标准库路径之后,因此如果我们在第一个站点包路径之前插入 python-future 模块,则它必须在标准库之后. 事实证明,将站点包路径添加到 PYTHONPATH 环境变量时,例如,在使用软件 ROS 时,情况并非如此。请参阅问题 Valloric/YouCompleteMe#2186。发生这种情况时,python-future 模块将在 Python 3 上引发以下异常:

 ImportError: This package should not be accessible on Python 3.
 Either you are trying to run from the python-future src folder or
 your installation of python-future is corrupted.

我们通过在 sys.path 中查找标准库路径并在其后插入 python-future 模块来防止这种情况。如果找不到它,我们会引发异常,因为没有它 YCM 和 ycmd 就无法工作。

修复Valloric/YouCompleteMe#2186

合并上述拉取请求后,您应该能够通过拉取更新(如果还没有克隆存储库)并重新安装来解决问题。

于 2016-08-18T15:51:07.143 回答
0

听起来好像您在 virtualenv 中使用 python 3。就 vim 而言,您正在运行 ycm 不支持的 python 3

https://github.com/Valloric/YouCompleteMe/issues/1140

一种解决方法是从您的 virtualenv 外部打开 vim

于 2016-08-18T03:04:07.950 回答