Revisé el sistema de compilación de YouCompleteMe y usa un script de compilación personalizado que usa el módulo de Python distutils
para encontrar las rutas a la biblioteca de Python e incluir directorios. Tu /usr/local/
la instalación de Python probablemente esté incluida en su PATH
variable antes del oficial /usr
instalación, así que simplemente ejecute python
probablemente ejecuta su instalación personalizada, haciendo distutils
devolver sus directorios.
Para verificar si esto es cierto, intente ejecutar which python
. Supongo que devolverá algo como /usr/local/bin/python
.
En este punto, veo varias opciones (en orden de preferencia).
-
Intente ejecutar el script de instalación de YCM especificando qué ejecutable de Python debe ejecutarlo explícitamente:
/usr/bin/python ./install.py --clang-completer
Si usa completadores adicionales con YCM, debe agregar las banderas apropiadas a la línea anterior (por ejemplo,
--js-completer
para completar JavaScript). -
Edite el guión
third_party/ycmd/build.py
en el directorio de complementos de YouCompleteMe para codificar las rutas para su instalación personalizada de Python. Por ejemplo, podría reemplazar elFindPythonLibraries
existente funciona con lo siguiente:def FindPythonLibraries(): return ('/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so', '/usr/include/python2.7')
Tenga en cuenta que esto hará que sea más difícil actualizar YouCompleteMe, ya que deberá asegurarse de que no se sobrescriba cuando actualice su fuente.
- Reemplace su instalación personalizada de Python con una creada como biblioteca compartida. Los detalles de esto dependerán de cómo instaló la instalación de Python existente en primer lugar. Puede verificar si lo instaló a través de un paquete usando
dpkg -S /usr/local/lib/python2.7/config/libpython2.7.a
. Este comando le dirá qué paquete instaló ese archivo, a menos que lo haya instalado manualmente (sin pasar por el administrador de paquetes). - Eliminar su
/usr/local
personalizado Instalación de Python mientras se asegura de tener instalado Python de los repositorios oficiales (paquetespython2.7
ylibpython2.7
).
A la larga, probablemente le convendría más utilizar los paquetes oficiales de Python.