Saya telah Anaconda
(termasuk python3.5.2), VIM
(7.4) dan Jedi-VIM
diinstal pada sistem saya. Ada juga yang python
diinstal pada sistem linux secara default.
Penyelesaian otomatis bekerja pada paket dasar, setidaknya. Tetapi untuk paket seperti numpy
(yang termasuk dalam Anaconda
) penyelesaian tidak berfungsi.
Dengan menggunakan perintah berikut di VIM
:
:py3 import sys; print(sys.path)
['/usr/lib/python35.zip',
'/usr/lib/python3.5',
'/usr/lib/python3.5/plat-x86_64-linux-gnu',
'/usr/lib/python3.5/lib-dynload',
'/usr/local/lib/python3.5/dist-packages',
'/usr/lib/python3/dist-packages',
'_vim_path_']
Ini menunjukkan kepada saya bahwa Anaconda-python
interpreter dan paket tidak pernah digunakan oleh jedi-vim
.
$which python
/home/user1/anaconda3/bin/python
Bagaimana saya bisa mendapatkan jedi-vim untuk menggunakan juga jalur anaconda python untuk mendapatkan paket autocompletion?
export PYTHONPATH="/home/user-name/anaconda3/lib/python3.5/site-packages":$PYTHONPATH
ke saya~/.zshrc
mendapat jedi-vim untuk bekerja dengan benar dengan anaconda.Kamu tidak bisa The
:python
dan:python3
perintah selalu menggunakan disusun-in penerjemah. Jika Anda memiliki versi terbaru Vim denganpython
dan / ataupython3
dimuat secara dinamis (lihat:h python-dynamic
), Anda dapat menggunakanpythondll
danpythonthreedll
memuat penerjemah yang berbeda, tetapi mengganti CPython dengan Anaconda adalah IMO yang meminta segfault (asalkan Vim menerimanya sama sekali, yaitu).sumber
2018+ Versi Jedi
Anda bisa menggunakan
:let jedi#force_py_version=3.8
jika Anda ingin beralih ke versi Python terbaru, misalnya. Sayangnya belum ada daftar lingkungan di jedi-vim. Kita perlu membangun itu (itu tersedia di Jedi).Jawaban Lama
Pada dasarnya satu-satunya hal yang dapat Anda lakukan saat ini adalah mengkompilasi VIM dengan dukungan Python 3.5. Itu mungkin ide yang bodoh, tetapi berhasil.
Kalau tidak, akan ada dukungan untuk versi cross Python, dengan https://github.com/davidhalter/jedi/issues/385 .
Perhatikan bahwa dimungkinkan untuk memodifikasi Python PATH, tetapi itu mungkin mengarah ke SEGFAULT dan perilaku yang tidak diinginkan lainnya, karena pada dasarnya Anda mengizinkan Jedi untuk menjalankan kode biner dari versi Python lain (Ya, itu benar-benar terjadi).
sumber
Anda dapat mengkompilasi vim dengan anaconda: Ya
./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=~/anaconda/lib/python2.7/config/
, saya ingat bahwa saya melakukan tes serupa sesudahnya dan:py import sys; print sys.path
memberi saya hasil yang benar.Berdasarkan penelusuran web, Anda mungkin dapat melakukan hal seperti ini (mis. Untuk 3.4):
./configure --enable-python3interp --with-features=huge --with-python3-config-dir=~/anaconda/lib/python3.4/config-3.4m-x86_64-linux-gnu
sumber
David memiliki poin yang valid tentang intermingling Vim dengan rasa yang berbeda dari Python dan jika hard coding
PYTHONPATH
ke Anaconda Python di.profile
/.bashrc
benar-benar mengarah ke SEG 11 dapatkah seseorang menggunakan shell alias.Mungkin penyelesaian ini sudah cukup.
sumber
Saya menggunakan vim 32bit untuk kompatibilitas dengan ekstensi lain, tetapi python 64 bit pertama di PATH saya karena alasan lain. Karenanya saya menginstal python 32 bit menggunakan conda via:
dan menambahkan ini ke
.vimrc
:dimana
C:/Users/USER/AppData/Local/Continuum/anaconda2
hasil dari panggilanconda info --base
sumber