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-completer
Jika Anda menggunakan pelengkap tambahan dengan YCM, Anda harus menambahkan tanda yang sesuai ke baris di atas (mis.
--js-completer
untuk penyelesaian JavaScript). -
Edit skrip
third_party/ycmd/build.py
di direktori plugin YouCompleteMe untuk meng-hardcode jalur untuk instalasi Python khusus Anda. Misalnya, Anda dapat menggantiFindPythonLibraries
yang 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/local
khusus Anda Instalasi Python sambil memastikan Anda memiliki Python dari repositori resmi yang diinstal (paketpython2.7
danlibpython2.7
).
Dalam jangka panjang, Anda mungkin akan lebih baik menggunakan paket resmi Python.