Mam Anaconda
(w tym python3.5.2), VIM
(7.4) i Jedi-VIM
zainstalowałem w swoim systemie. python
Domyślnie był również zainstalowany w systemie Linux.
Autouzupełnianie działa przynajmniej na pakietach podstawowych. Ale w przypadku pakietów takich jak numpy
(które zostały uwzględnione Anaconda
) zakończenie nie działa.
Za pomocą następującego polecenia w 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_']
Wskazuje mi to, że Anaconda-python
interpreter i pakiety nigdy nie są używane przez jedi-vim
.
$which python
/home/user1/anaconda3/bin/python
Jak sprawić, aby jedi-vim używał także ścieżki anakondy do pobierania autouzupełniania pakietów?
export PYTHONPATH="/home/user-name/anaconda3/lib/python3.5/site-packages":$PYTHONPATH
do mojego~/.zshrc
mam jedi-vim działa poprawnie z anakondą.Nie możesz
:python
I:python3
polecenia zawsze używać wkompilowanych tłumaczy. Jeśli masz najnowszą wersję Vima zpython
i / lubpython3
ładowaną dynamicznie (patrz:h python-dynamic
), możesz używaćpythondll
ipythonthreedll
ładować różne interpretery, ale zastąpienie CPython przez Anacondę to IMO z prośbą o segfault (pod warunkiem, że Vim w ogóle go akceptuje).źródło
2018+ Wersje Jedi
Możesz użyć,
:let jedi#force_py_version=3.8
jeśli chcesz na przykład przejść do najnowszej wersji Pythona. Niestety w Jedi-vim nie ma jeszcze wykazu środowiska. Musimy to zbudować (jest to jednak dostępne w Jedi).Stara odpowiedź
Zasadniczo jedyne, co możesz teraz zrobić, to skompilować VIM z obsługą Python 3.5. To chyba głupi pomysł, ale działa.
W przeciwnym razie będzie dostępna obsługa krzyżowych wersji Pythona z https://github.com/davidhalter/jedi/issues/385 .
Zauważ, że może być możliwa modyfikacja PATH Pythona, ale może to prowadzić do SEGFAULT i innych niepożądanych zachowań, ponieważ zasadniczo pozwalasz Jedi na uruchamianie kodu binarnego z innej wersji Pythona (Tak, to się faktycznie dzieje).
źródło
Możesz skompilować vima z anakondą: zrobiłem
./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=~/anaconda/lib/python2.7/config/
, pamiętam, że zrobiłem później podobne testy i dałem:py import sys; print sys.path
prawidłowe wyniki.Na podstawie wyszukiwania w Internecie możesz zrobić coś takiego (np. Dla 3.4):
./configure --enable-python3interp --with-features=huge --with-python3-config-dir=~/anaconda/lib/python3.4/config-3.4m-x86_64-linux-gnu
źródło
David ma
PYTHONPATH
rację, mówiąc o mieszaniu Vima z różnymi smakami Pythona, a jeśli twarde kodowanie do Anacondy Python w.profile
/.bashrc
naprawdę prowadzi do SEG 11, można użyć aliasu powłoki.Być może to obejście wystarczy.
źródło
Używam 32-bitowego vima dla kompatybilności z innymi rozszerzeniami, ale 64-bitowy python jest pierwszy na mojej PATH z innych powodów. Dlatego zainstalowałem 32-bitowy python za pomocą conda poprzez:
i dodał to do mojego
.vimrc
:gdzie
C:/Users/USER/AppData/Local/Continuum/anaconda2
jest wynik wywołaniaconda info --base
źródło