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-completer
Se utilizzi altri completatori con YCM, dovresti aggiungere i flag appropriati alla riga precedente (ad es.
--js-completer
per il completamento di JavaScript). -
Modifica lo script
third_party/ycmd/build.py
nella directory dei plugin di YouCompleteMe per codificare i percorsi per la tua installazione Python personalizzata. Ad esempio, potresti sostituire ilFindPythonLibraries
esistente 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/local
personalizzato Installazione di Python assicurandoti di avere un Python dai repository ufficiali installato (pacchettipython2.7
elibpython2.7
).
A lungo termine, probabilmente starai meglio usando i pacchetti Python ufficiali.