YouCompleteMe のビルド システムを確認したところ、Python モジュール distutils
を使用するカスタム ビルド スクリプトが使用されています。 Python のライブラリへのパスとインクルード ディレクトリを検索します。あなたの /usr/local/
Python のインストールは、おそらく PATH
に含まれています。 公式の /usr
の前の変数 python
を実行するだけでインストールできます おそらくカスタム インストールが実行され、distutils
になります。 そのディレクトリを返します。
これが正しいかどうかを確認するには、which python
を実行してみてください . /usr/local/bin/python
のようなものが返されると思います .
この時点で、いくつかのオプションが表示されます (優先順)。
<オール>
明示的に実行する Python 実行可能ファイルを指定して、YCM のインストール スクリプトを実行してみてください:/usr/bin/python ./install.py --clang-completer
YCM で追加のコンプリータを使用する場合は、上記の行に適切なフラグを追加する必要があります (例:--js-completer
JavaScript 補完用)。
スクリプト third_party/ycmd/build.py
を編集します YouCompleteMe のプラグイン ディレクトリで、カスタム Python インストールのパスをハードコーディングします。たとえば、既存の FindPythonLibraries
を置き換えることができます 次の関数:
def FindPythonLibraries():
return ('/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so',
'/usr/include/python2.7')
YouCompleteMe のソースを更新するときに上書きされないようにする必要があるため、YouCompleteMe の更新が難しくなることに注意してください。
dpkg -S /usr/local/lib/python2.7/config/libpython2.7.a
を使用して、パッケージを介してインストールしたかどうかを確認できます .このコマンドは、(パッケージ マネージャーをバイパスして) 手動でインストールしない限り、どのパッケージがそのファイルをインストールしたかを示します。/usr/local
を削除します 公式リポジトリから Python がインストールされていることを確認しながら、Python をインストールします (パッケージ python2.7
そして libpython2.7
).長期的には、公式の Python パッケージを使用したほうがよいでしょう。