2

YouCompleteMe プラグインを vim で使用しようとすると、次のエラーが表示されます。

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 グループで発生し、回答がありませんでした。

vimバージョン7.4を使用して、Ubuntu 14.04を使用しています。

4

2 に答える 2

1

バグのようです:

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

PR #448 では、最初のサイト パッケージ パスの直前に python-future モジュールを挿入する場合、標準ライブラリの後に必要になるように、サイト パッケージ パスは常に標準ライブラリ パスの後に配置されると仮定しました。 . ソフトウェア ROS を使用している場合など、サイト パッケージ パスが PYTHONPATH 環境変数に追加されている場合は、正しくないことがわかります。問題 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 に答える