У меня есть Anaconda
(включая python3.5.2), VIM
(7.4) и Jedi-VIM
установлено в моей системе. По python
умолчанию также была установлена система Linux.
По крайней мере, автозаполнение работает на базовых пакетах. Но для пакетов типа numpy
(которые были включены в Anaconda
) завершение не работает.
Используя следующую команду в 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_']
Это указывает на то, что Anaconda-python
интерпретатор и пакеты никогда не использовались jedi-vim
.
$which python
/home/user1/anaconda3/bin/python
Как я могу заставить jedi-vim использовать также путь к anaconda python для получения автозаполнения пакета?
export PYTHONPATH="/home/user-name/anaconda3/lib/python3.5/site-packages":$PYTHONPATH
в мой~/.zshrc
джедай-вим для корректной работы с анакондой.Ты не можешь
:python
И:python3
команды всегда используют вкомпилированные переводчик. Если у вас есть последняя версия Vim сpython
и / илиpython3
динамически загруженной (см.:h python-dynamic
), Вы можете использоватьpythondll
иpythonthreedll
для загрузки различных интерпретаторов, но замена CPython на Anaconda - это IMO, запрашивающая segfaults (при условии, что Vim принимает ее вообще, то есть).источник
Версии джедая 2018+
Вы можете просто использовать,
:let jedi#force_py_version=3.8
если вы хотите, например, перейти на последнюю версию Python. К сожалению, в jedi-vim пока нет списка окружения. Нам нужно построить это (хотя оно доступно в джедаях).Старый ответ
По сути, единственное, что вы можете сейчас сделать, - это скомпилировать VIM с поддержкой Python 3.5. Это, вероятно, глупая идея, но она работает.
В противном случае будет поддерживаться кросс-версии Python, с https://github.com/davidhalter/jedi/issues/385 .
Обратите внимание, что может быть возможно изменить Python PATH, но это может привести к SEGFAULT и другому нежелательному поведению, потому что вы в основном позволяете Jedi запускать двоичный код из другой версии Python (да, это действительно происходит).
источник
Вы можете скомпилировать vim с помощью anaconda: я
./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=~/anaconda/lib/python2.7/config/
помню, я делал подобные тесты впоследствии и:py import sys; print sys.path
давал правильные результаты.Основываясь на веб-поиске, вы можете сделать что-то вроде этого (например, для 3.4):
./configure --enable-python3interp --with-features=huge --with-python3-config-dir=~/anaconda/lib/python3.4/config-3.4m-x86_64-linux-gnu
источник
У Дэвида есть верное замечание о том, что Vim можно смешивать с различными разновидностями Python, и если жесткое программирование
PYTHONPATH
для Anaconda Python в.profile
/.bashrc
действительно приводит к SEG 11, можно использовать псевдоним оболочки.Возможно, этого обходного пути будет достаточно.
источник
Я использую 32-битный vim для совместимости с другими расширениями, но 64-битный питон первым в моем PATH по другим причинам. Поэтому я установил 32-битный Python, используя conda через:
и добавил это к моему
.vimrc
:где
C:/Users/USER/AppData/Local/Continuum/anaconda2
результат вызоваconda info --base
источник