YouCompleteMe/Python可以完成内置libs,但不能完成站点包

YouCompleteMe/Python可以完成内置libs,但不能完成站点包,python,autocomplete,Python,Autocomplete,我刚安装了ycm,一切看起来都不错,但我发现了小问题。问题如下: import os # os is built-in library os. # ycm helps to complete members of the class. import numpy # numpy is not built-in library, where its location is site-packages. numpy. # nothing happened. ycm

我刚安装了ycm,一切看起来都不错,但我发现了小问题。问题如下:

import os    # os is built-in library
os.          # ycm helps to complete members of the class.
import numpy # numpy is not built-in library, where its location is site-packages. 
numpy.       # nothing happened. ycm shows 'pattern not found' message.
我认为,这将是一个简单的问题。但我还没有找到解决办法。我想,有一些配置文件,我可以在其中为我的项目定义“搜索路径”

如果我能找到解决办法,我将不胜感激

最好的


Je Hoon Song

numpy
是一个很难实现的库,因为它在导入时动态地构建名称空间,使得静态代码分析工具很难知道在编写代码时哪些名称应该可用。因为名称空间
numpy
中可用的名称只有在运行时才知道,YCM可能没有任何有用的建议给您。

我对模块“mpmath”也有同样的问题,并通过以下方式修复了它: 首先,我检索了模块所在的路径:

%python3
>>>import mpmath
>>>print(mpmath.__file__)
/usr/lib/python3.4/site-packages/mpmath/__init__.py
在这里,我发现我所有“已安装”的python3软件包的路径是:

/usr/lib/python3.4/site-packages/
然后,我简单地将以下路径添加到PYTHONPATH环境变量中:

%export PYTHONPATH=/usr/lib/python3.4/site-packages/
然后,当我使用
vim sample.py
键入
import mpmath
并使用
mpmath进行后续操作时。
YCM向我展示了mpmath模块的所有自动完成


希望这有帮助。

一种简单的修复方法是激活python环境,然后打开vim。比如说

(django_mdn) ➜  locallibrary git:(master) ✗ vim
在vim运行
:echo$PATH

然后您应该能够看到您的venv路径最初是这样的:

/Users/gwanghyeongim/.virtualenvs/django_mdn/bin:/usr/local/opt/tcl-tk/bin:...
然后查看python包是否自动完成

成功了

如果要将某个站点包设置为永久自动完成,则需要在项目根目录或
global\u extra\u conf.py
中创建一个名为
.ycm\uuu conf.py的文件,并且如果要全局设置它

附加说明

在打开vim之前,通过在shell中运行
export PYTHONPATH=/usr/lib/python3.4/site packages/
对我来说不起作用。此外,除非永久设置PYTHONPATH(这会导致问题),否则每次您希望依赖项自动完成时都必须设置导出PYTHONPATH。

您解决了吗?我也有同样的问题,不仅是numpyI也尝试过numpy,它的效果和预期的一样。