Las subclases Jedi Vim Python no se detectan en la finalización de TAB

El problema está en Arch (1) y Debian Jessie (2) donde:

1.

> uname -r 4.0.5-1-ARCH > echo $PYTHONPATH /usr/lib/python2.7/ 
  1. Debian Jessie está sin el conjunto PYTHONPATH.

Mi vim está comstackdo con python.

 :python import sys; print(sys.version) 2.7.10 (default, May 26 2015, 04:16:29) [GCC 5.1.0] 

Probé los siguientes paquetes de Arch Linux:

 > pacman -S python2-jedi vim-jedi 

la finalización funciona en las clases pero no en las subclases.

 import os # os is built-in library. os. # ycm does not complete members of this class. 

Los quité y descargué el paquete git.

 > cd ~/.vim/bundle/jedi-vim/jedi/test/ && ./run.py Summary: (0 fails of 962 tests) in 18.819s > cd ../ && ./setup build && ./setup install 

Y nuevamente, la finalización funciona en clases pero no en las subclases.

Mi pregunta anterior que me envió a jedi-vim desde Vim YouCompleteMe Las subclases de Python no se detectan al completar TAB en Arch Linux

Me acabo de dar cuenta de que cometí un error debido a mi incomprensión. Estaba tratando de importar de la siguiente manera:

Sentido Contrario

Lo que fue natural cuando usé ipython con la finalización de tabulación como esta:

ipython

Esa es una forma incorrecta de importar un módulo en una secuencia de comandos de python. Esta es la manera correcta:

manera correcta

Finalmente, el complemento Jedi-Vim funciona perfectamente. En caso de incertidumbre relacionada con las importaciones no disponibles, puede verificar sus importaciones con:

 :python import sys; print(sys.path) 

Y luego agregue los directorios faltantes durante el tiempo de ejecución para probar si su ausencia estaba causando el problema.

 :python import sys; sys.path.append("/path/to/dir") 

En mi caso, el os.py se encontraba en /usr/lib/python2.7/ .

Espero que esto aclare esto para los futuros usuarios de Jedi-Vim.

Pregunta anterior, pero he encontrado una alternativa para modificar sys.path si está utilizando entornos virtuales.

En su lugar, puede crear un .pth ( https://docs.python.org/2/library/site.html ) en su carpeta /lib//site-packages que apunte a la raíz de su fuente, por ejemplo, si mi fuente estaba en la carpeta /user/123/python-proj/source y mi env virtual estaba en la carpeta /user/123/python-proj/venv

 echo '/user/123/python-proj/source > /user/123/python-proj/venv/lib/python3.5/site-packages/my-source.pth' 

Asegúrate de activar primero el env virtual, luego ejecuta vim y jedi debería poder encontrar tu código.