Eu tenho Anaconda
(incluindo python3.5.2), VIM
(7.4) e Jedi-VIM
instalado no meu sistema. Também havia um python
instalado no sistema linux por padrão.
O preenchimento automático está funcionando em pacotes base, pelo menos. Mas para pacotes como numpy
(que foram incluídos Anaconda
) a conclusão não está funcionando.
Usando o seguinte comando em 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_']
Isso indica para mim que o Anaconda-python
intérprete e os pacotes nunca foram usados por jedi-vim
.
$which python
/home/user1/anaconda3/bin/python
Como posso obter que o jedi-vim use também o caminho do anaconda python para obter o preenchimento automático de pacotes?
export PYTHONPATH="/home/user-name/anaconda3/lib/python3.5/site-packages":$PYTHONPATH
ao meu,~/.zshrc
o jedi-vim funcionou corretamente com o anaconda.Você não pode. Os comandos
:python
e:python3
sempre usam os intérpretes compilados. Se você possui uma versão recente do Vim compython
e / oupython3
carregada dinamicamente (consulte:h python-dynamic
), pode usarpythondll
epythonthreedll
carregar diferentes intérpretes, mas a substituição do CPython pelo Anaconda é IMO solicitando segfaults (desde que o Vim aceite, isso é).fonte
2018+ Versões Jedi
Você pode usar apenas
:let jedi#force_py_version=3.8
se quiser mudar para a versão mais recente do Python, por exemplo. Infelizmente, ainda não há uma listagem de ambiente no jedi-vim. Precisamos construir isso (ele está disponível em Jedi).Resposta antiga
Basicamente, a única coisa que você pode fazer atualmente é compilar o VIM com suporte ao Python 3.5. Provavelmente é uma ideia estúpida, mas funciona.
Caso contrário, haverá suporte para versões cruzadas do Python, com https://github.com/davidhalter/jedi/issues/385 .
Observe que pode ser possível modificar o PATH do Python, mas isso pode levar a um SEGFAULT e a outro comportamento indesejado, porque você basicamente permite que o Jedi execute o código binário de outra versão do Python (sim, isso realmente acontece).
fonte
Você poderia compilar o vim com o anaconda: sim
./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=~/anaconda/lib/python2.7/config/
, lembro que fiz testes semelhantes depois e:py import sys; print sys.path
estava me dando resultados corretos.Com base na pesquisa na web, talvez você possa fazer algo assim (por exemplo, para 3.4):
./configure --enable-python3interp --with-features=huge --with-python3-config-dir=~/anaconda/lib/python3.4/config-3.4m-x86_64-linux-gnu
fonte
David tem um argumento válido sobre misturar o Vim com diferentes tipos de Python e se a codificação
PYTHONPATH
embutida no Anaconda Python em.profile
/.bashrc
realmente levar ao SEG 11, poderia-se usar um apelido de shell.Talvez essa solução alternativa seja suficiente.
fonte
Estou usando o 32 bits vim para compatibilidade com outras extensões, mas o python de 64 bits é o primeiro no meu PATH por outros motivos. Portanto, instalei o python de 32 bits usando o conda via:
e adicionei isso ao meu
.vimrc
:onde
C:/Users/USER/AppData/Local/Continuum/anaconda2
é o resultado da chamadaconda info --base
fonte