[英]Vim YouCompleteMe Python subclasses are not detected on TAB-completion in Arch Linux
[英]Jedi Vim Python subclasses are not detected on TAB-completion
問題出在Arch(1)和Debian Jessie(2)上,其中:
1。
> uname -r
4.0.5-1-ARCH
> echo $PYTHONPATH
/usr/lib/python2.7/
我的vim是用python編譯的。
:python import sys; print(sys.version)
2.7.10 (default, May 26 2015, 04:16:29)
[GCC 5.1.0]
我嘗試了以下Arch Linux軟件包:
> pacman -S python2-jedi vim-jedi
完成功能適用於類,但不適用於子類。
import os # os is built-in library.
os. # ycm does not complete members of this class.
我刪除了它們並下載了git包。
> cd ~/.vim/bundle/jedi-vim/jedi/test/ && ./run.py
Summary: (0 fails of 962 tests) in 18.819s
> cd ../ && ./setup build && ./setup install
同樣,完成對類有效,但對子類無效。
我以前的問題是從Vim YouCompleteMe Python子類發送到jedi-vim的, 但未在Arch Linux中的TAB完成時檢測到
我只是意識到由於我的不理解,我犯了一個錯誤。 我正在嘗試通過以下方式導入:
當我將ipython與制表符完成一起使用時,這很自然:
這是在python腳本中導入模塊的錯誤方法。 這是正確的方法:
最后,Jedi-Vim插件可以完美運行。 如果不確定因無法進口而引起的不確定性,您可以使用以下方法驗證您的進口:
:python import sys; print(sys.path)
然后在運行時添加缺少的目錄,以測試缺少的目錄是否引起了問題。
:python import sys; sys.path.append("/path/to/dir")
就我而言, os.py位於/usr/lib/python2.7/ 。
我希望這可以為將來的Jedi-Vim用戶澄清這一點。
這是個老問題,但是如果您使用的是虛擬環境,我已經找到了一種替代sys.path
的方法。
您可以在<virtualenv>/lib/<python>/site-packages
文件夾中創建一個指向您根目錄的.pth
( https://docs.python.org/2/library/site.html )文件。來源,例如,如果我的來源在/user/123/python-proj/source
文件夾中,而我的虛擬環境在/user/123/python-proj/venv
文件夾中
echo '/user/123/python-proj/source > /user/123/python-proj/venv/lib/python3.5/site-packages/my-source.pth'
確保先激活虛擬環境,然后啟動vim,並且jedi應該能夠找到您的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.