Saya memeriksa sistem build YouCompleteMe dan menggunakan skrip build khusus yang menggunakan modul Python distutils untuk menemukan jalur ke pustaka Python dan menyertakan direktori. /usr/local/ Anda instalasi Python mungkin termasuk dalam PATH Anda variabel sebelum /usr resmi instalasi jadi hanya menjalankan python mungkin menjalankan instalasi khusus Anda, membuat distutils mengembalikan direktorinya.
Untuk memeriksa apakah ini benar, coba jalankan which python . Saya menganggap itu akan mengembalikan sesuatu seperti /usr/local/bin/python .
Pada titik ini, saya melihat beberapa opsi (dalam urutan preferensi).
-
Coba jalankan skrip instalasi YCM dengan menentukan executable Python mana yang harus menjalankannya secara eksplisit:
/usr/bin/python ./install.py --clang-completerJika Anda menggunakan pelengkap tambahan dengan YCM, Anda harus menambahkan tanda yang sesuai ke baris di atas (mis.
--js-completeruntuk penyelesaian JavaScript). -
Edit skrip
third_party/ycmd/build.pydi direktori plugin YouCompleteMe untuk meng-hardcode jalur untuk instalasi Python khusus Anda. Misalnya, Anda dapat menggantiFindPythonLibrariesyang ada berfungsi dengan yang berikut:def FindPythonLibraries(): return ('/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so', '/usr/include/python2.7')Perhatikan bahwa ini akan mempersulit pembaruan YouCompleteMe karena Anda harus memastikannya tidak ditimpa saat Anda memperbarui sumbernya.
- Ganti pemasangan khusus Python Anda dengan yang dibuat sebagai perpustakaan bersama. Detailnya akan tergantung pada bagaimana Anda menginstal instalasi Python yang ada di tempat pertama. Anda dapat memeriksa apakah Anda menginstalnya melalui sebuah paket dengan menggunakan
dpkg -S /usr/local/lib/python2.7/config/libpython2.7.a. Perintah ini akan memberi tahu Anda paket mana yang menginstal file tersebut, kecuali jika Anda menginstalnya secara manual (melewati pengelola paket). - Hapus
/usr/localkhusus Anda Instalasi Python sambil memastikan Anda memiliki Python dari repositori resmi yang diinstal (paketpython2.7danlibpython2.7).
Dalam jangka panjang, Anda mungkin akan lebih baik menggunakan paket resmi Python.