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

Je-*_*ong 6 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 shows 'pattern not found' message.
Run Code Online (Sandbox Code Playgroud)

我想,这将是一个简单的问题.但我还没找到解决方案.我认为,有一些配置文件,我可以在其中为我的项目定义"搜索路径".

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

最好,

Je-Hoon Song

小智 7

我在模块 'mpmath' 中遇到了同样的问题,并通过以下方式修复了它:首先,我检索了模块所在的路径:

%python3
>>>import mpmath
>>>print(mpmath.__file__)
/usr/lib/python3.4/site-packages/mpmath/__init__.py
Run Code Online (Sandbox Code Playgroud)

在这里,我发现所有“已安装”python3 软件包的路径为:

/usr/lib/python3.4/site-packages/
Run Code Online (Sandbox Code Playgroud)

然后我简单地将此路径添加到我的 PYTHONPATH 环境变量中:

%export PYTHONPATH=/usr/lib/python3.4/site-packages/
Run Code Online (Sandbox Code Playgroud)

然后,当我使用vim sample.py输入import mpmath并使用mpmath.YCM 进行跟踪时,它向我展示了 mpmath 模块的所有自动完成功能。

希望这可以帮助。


Dan*_*Lee 0

numpy是一个困难的库,因为它在导入时动态构建其名称空间,使得静态代码分析工具很难知道您在编写代码时应该使用哪些名称。由于命名空间中可用的名称numpy仅在运行时才真正已知,因此 YCM 可能不会为您提供任何有用的建议。