2

问题出在 Arch (1) 和 Debian Jessie (2) 上,其中:

1.

> uname -r
4.0.5-1-ARCH
> echo $PYTHONPATH
/usr/lib/python2.7/
  1. Debian Jessie 没有设置 PYTHONPATH。

我的 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 完成中未检测到

4

2 回答 2

1

我才意识到,由于我的不理解,我犯了一个错误。我试图通过以下方式导入:

错误道

当我像这样使用 ipython 和 tab 完成时,这是很自然的:

蟒蛇

这是在 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 用户澄清这一点。

于 2015-07-22T20:53:19.033 回答
0

sys.path老问题,但如果您使用虚拟环境,我已经找到了修改的替代方法。

您可以改为在您的文件夹中创建一个.pthhttps://docs.python.org/2/library/site.html)文件,该<virtualenv>/lib/<python>/site-packages文件指向您的源的根目录,例如,如果我的源位于/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 应该能够找到您的代码。

于 2017-01-04T10:58:31.460 回答