Ho controllato il sistema di compilazione di YouCompleteMe e utilizza uno script di compilazione personalizzato che utilizza il modulo Python distutils per trovare i percorsi della libreria di Python e includere le directory. Il tuo /usr/local/ l'installazione di Python è probabilmente inclusa nel tuo PATH variabile prima del /usr ufficiale installazione quindi basta eseguire python probabilmente esegue la tua installazione personalizzata, rendendo distutils restituire le sue directory.
Per verificare se questo è vero, prova a eseguire which python . Presumo che restituirà qualcosa come /usr/local/bin/python .
A questo punto, vedo diverse opzioni (in ordine di preferenza).
-
Prova a eseguire lo script di installazione di YCM specificando quale eseguibile Python deve eseguirlo in modo esplicito:
/usr/bin/python ./install.py --clang-completerSe utilizzi altri completatori con YCM, dovresti aggiungere i flag appropriati alla riga precedente (ad es.
--js-completerper il completamento di JavaScript). -
Modifica lo script
third_party/ycmd/build.pynella directory dei plugin di YouCompleteMe per codificare i percorsi per la tua installazione Python personalizzata. Ad esempio, potresti sostituire ilFindPythonLibrariesesistente funzione con quanto segue:def FindPythonLibraries(): return ('/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so', '/usr/include/python2.7')Tieni presente che questo renderà più difficile l'aggiornamento di YouCompleteMe poiché dovrai assicurarti che non venga sovrascritto quando aggiorni la sua fonte.
- Sostituisci la tua installazione personalizzata di Python con una creata come libreria condivisa. I dettagli di questo dipenderanno da come hai installato l'installazione Python esistente in primo luogo. Puoi controllare se l'hai installato tramite un pacchetto usando
dpkg -S /usr/local/lib/python2.7/config/libpython2.7.a. Questo comando ti dirà quale pacchetto ha installato quel file, a meno che tu non l'abbia installato manualmente (bypassando il gestore pacchetti). - Rimuovi il tuo
/usr/localpersonalizzato Installazione di Python assicurandoti di avere un Python dai repository ufficiali installato (pacchettipython2.7elibpython2.7).
A lungo termine, probabilmente starai meglio usando i pacchetti Python ufficiali.