Zkontroloval jsem sestavovací systém YouCompleteMe a používá vlastní sestavovací skript, který používá modul Python distutils najít cesty ke knihovně Pythonu a zahrnout adresáře. Vaše /usr/local/ instalace Pythonu je pravděpodobně zahrnuta ve vašem PATH proměnná před oficiální /usr instalace, takže stačí spustit python pravděpodobně spustí vaši vlastní instalaci, takže distutils vrátit jeho adresáře.
Chcete-li zkontrolovat, zda je to pravda, zkuste spustit which python . Předpokládám, že to vrátí něco jako /usr/local/bin/python .
V tomto okamžiku vidím několik možností (v pořadí podle preferencí).
-
Zkuste spustit instalační skript YCM zadáním, který spustitelný soubor Pythonu by jej měl explicitně spustit:
/usr/bin/python ./install.py --clang-completerPokud s YCM používáte nějaké další dokončovače, měli byste do výše uvedeného řádku přidat příslušné příznaky (např.
--js-completerpro dokončení JavaScriptu). -
Upravte skript
third_party/ycmd/build.pyv adresáři zásuvných modulů YouCompleteMe a napevno zakódujte cesty pro vaši vlastní instalaci Pythonu. Můžete například nahradit stávajícíFindPythonLibrariesfunkce s následujícím:def FindPythonLibraries(): return ('/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so', '/usr/include/python2.7')Upozorňujeme, že to ztíží aktualizaci YouCompleteMe, protože budete muset zajistit, aby nedošlo k přepsání, když aktualizujete jeho zdroj.
- Nahraďte svou vlastní instalaci Pythonu instalací vytvořenou jako sdílená knihovna. Podrobnosti budou záviset na tom, jak jste nainstalovali stávající instalaci Pythonu. Můžete zkontrolovat, zda jste jej nainstalovali prostřednictvím balíčku pomocí
dpkg -S /usr/local/lib/python2.7/config/libpython2.7.a. Tento příkaz vám řekne, který balíček nainstaloval daný soubor, pokud jste jej nenainstalovali ručně (vynecháte správce balíčků). - Odeberte vlastní
/usr/localInstalace Pythonu při zajištění, že máte nainstalovaný Python z oficiálních repozitářů (balíčkypython2.7alibpython2.7).
Z dlouhodobého hlediska by pro vás pravděpodobně bylo lepší používat oficiální balíčky Pythonu.