J'ai vérifié le système de construction de YouCompleteMe et il utilise un script de construction personnalisé qui utilise le module Python distutils
pour trouver les chemins d'accès à la bibliothèque de Python et inclure les répertoires. Votre /usr/local/
l'installation de Python est probablement incluse dans votre PATH
variable avant le /usr
officiel installation donc juste en cours d'exécution python
exécute probablement votre installation personnalisée, faisant distutils
renvoie ses répertoires.
Pour vérifier si cela est vrai, essayez d'exécuter which python
. Je suppose qu'il renverra quelque chose comme /usr/local/bin/python
.
À ce stade, je vois plusieurs options (par ordre de préférence).
-
Essayez d'exécuter le script d'installation de YCM en spécifiant quel exécutable Python doit l'exécuter explicitement :
/usr/bin/python ./install.py --clang-completer
Si vous utilisez des compléteurs supplémentaires avec YCM, vous devez ajouter les indicateurs appropriés à la ligne ci-dessus (par exemple,
--js-completer
pour la complétion JavaScript). -
Editez le script
third_party/ycmd/build.py
dans le répertoire du plugin de YouCompleteMe pour coder en dur les chemins de votre installation Python personnalisée. Par exemple, vous pouvez remplacer leFindPythonLibraries
existant fonction avec ce qui suit :def FindPythonLibraries(): return ('/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so', '/usr/include/python2.7')
Notez que cela rendra plus difficile la mise à jour de YouCompleteMe car vous devrez vous assurer qu'il ne sera pas écrasé lorsque vous mettrez à jour sa source.
- Remplacez votre installation personnalisée de Python par une autre construite en tant que bibliothèque partagée. Les détails de cela dépendront de la façon dont vous avez installé l'installation Python existante en premier lieu. Vous pouvez vérifier si vous l'avez installé via un package en utilisant
dpkg -S /usr/local/lib/python2.7/config/libpython2.7.a
. Cette commande vous indiquera quel paquet a installé ce fichier, sauf si vous l'avez installé manuellement (en contournant le gestionnaire de paquets). - Supprimez votre
/usr/local
personnalisé Installation de Python en s'assurant d'avoir installé un Python des dépôts officiels (packagespython2.7
etlibpython2.7
).
À long terme, vous feriez probablement mieux d'utiliser les packages Python officiels.