Tengo Anaconda
(incluyendo python3.5.2), VIM
(7.4) e Jedi-VIM
instalado en mi sistema. También había python
instalado en el sistema Linux de forma predeterminada.
El autocompletado está funcionando en paquetes base, al menos. Pero para paquetes como numpy
(que se incluyó en Anaconda
) la finalización no funciona.
Al usar el siguiente comando en 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_']
Esto me indica que el Anaconda-python
intérprete y los paquetes nunca han sido utilizados por jedi-vim
.
$which python
/home/user1/anaconda3/bin/python
¿Cómo puedo hacer que jedi-vim use también la ruta de Anaconda Python para obtener el autocompletado de paquetes?
export PYTHONPATH="/home/user-name/anaconda3/lib/python3.5/site-packages":$PYTHONPATH
a mi~/.zshrc
tengo jedi-vim para trabajar correctamente con anaconda.No puedes Los comandos
:python
y:python3
siempre usan los intérpretes compilados. Si tiene una versión reciente de Vim conpython
y / opython3
cargada dinámicamente (vea:h python-dynamic
) puede usarpythondll
ypythonthreedll
cargar diferentes intérpretes, pero reemplazar CPython por Anaconda es IMO pidiendo segfaults (siempre que Vim lo acepte).fuente
2018+ Versiones Jedi
Solo puede usar
:let jedi#force_py_version=3.8
si desea cambiar a la última versión de Python, por ejemplo. Desafortunadamente, todavía no hay una lista de entornos en jedi-vim. Necesitamos construir eso (sin embargo, está disponible en Jedi).Vieja respuesta
Básicamente, lo único que puede hacer actualmente es compilar VIM con soporte para Python 3.5. Esa es probablemente una idea estúpida, pero funciona.
De lo contrario, habrá soporte para versiones cruzadas de Python, con https://github.com/davidhalter/jedi/issues/385 .
Tenga en cuenta que podría ser posible modificar la RUTA de Python, pero eso podría conducir a un SEGFAULT y a otro comportamiento no deseado, porque básicamente está permitiendo que Jedi ejecute código binario desde otra versión de Python (Sí, en realidad sucede).
fuente
Podrías compilar vim con anaconda: lo hice
./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=~/anaconda/lib/python2.7/config/
, recuerdo que hice pruebas similares después y:py import sys; print sys.path
me estaba dando resultados correctos.Según la búsqueda en la web , tal vez podría hacer algo como esto (por ejemplo, 3.4):
./configure --enable-python3interp --with-features=huge --with-python3-config-dir=~/anaconda/lib/python3.4/config-3.4m-x86_64-linux-gnu
fuente
David tiene un punto válido acerca de mezclar Vim con diferentes sabores de Python y si la codificación dura
PYTHONPATH
de Anaconda Python en.profile
/.bashrc
realmente conduce a SEG 11, ¿podría uno usar un alias de shell?Quizás esta solución sea suficiente.
fuente
Estoy usando 32 bits vim para compatibilidad con otras extensiones, pero el pitón de 64 bits es el primero en mi RUTA por otras razones. Por lo tanto, instalé el python de 32 bits usando conda a través de:
y agregué esto a mi
.vimrc
:donde
C:/Users/USER/AppData/Local/Continuum/anaconda2
es el resultado de llamarconda info --base
fuente