2016-11-27 20 views
0

我想为我的Python开发配置ST3作为IDE。ST3 + Anaconda Python自动完成无用的建议

下面是一个代码片段:

from __future__ import division 
from sklearn import datasets 
import numpy as np 
def main(): 
    ds = datasets.load_boston() 
    x = ds.data 
    y = ds.target 
    x.ravel() 
if __name__ == '__main__': 
    main() 

这里是我的Preferences.sublime的设置设置:

{ 
"color_scheme": "Packages/Theme - Flatland/Flatland Dark.tmTheme", 
"theme": "Flatland Dark.sublime-theme", 
"flatland_sidebar_tree_xsmall": false, 
"flatland_square_tabs": true, 

"auto_complete_delay": 10, 
"auto_complete_triggers": 
[ 
    { 
     "characters": ".", 
     "selector": "source.python - string - comment - constant.numeric" 
    } 
], 

"font_size": 12, 
"tab_size": 4, 
"translate_tabs_to_spaces": true, 

"caret_extra_bottom": 1, 
"caret_extra_top": 1, 
"caret_extra_width": 1.2, 
} 

这里是我的Anaconda.sublime的设置

{ 
"anaconda_linter_mark_style": "none", 
"anaconda_linter_underlines": false, 
"suppress_word_completions": true, 
"suppress_explicit_completions": true, 
"enable_signatures_tooltip": true, 
"merge_signatures_and_doc": true, 
"pep8_ignore": 
[ 
    "E305", 
    "E309", 
    "E501", 
    "E112", 
    "W291" 
] 
} 

以下是我所有安装的软件包列表:

  • 蟒蛇(V2.1.10)
  • 地方史(v.2016.09.12.07.22.25)
  • 包控制(v.3.2.1)
  • SideBarEnhancements
  • 主题 - 平地(v2016.11.07 .16.37.27)

我的问题如下:

1)如果键入DS。自动完成不建议数据目标,但他们应该是有效的建议。如果我输入ds。自动完成建议像:from,if,def等...我相信自动完成扫描整个文本文件并添加来自字符串的建议。有没有办法禁用它,并建议只提供相关的(函数,方法和成员变量)建议?

3.)X是具有方法拆纱np.array类型()。再一次,这种方法不建议。这真的不是我期望的自动完成。

任何帮助非常感谢! 亲切的问候

回答

1

Jedi(anaconda用来提供自动完成的库)完成NumPy和其他科学库时有已知的问题。例如 https://github.com/davidhalter/jedi/issues/372

完成约NumPy的非解决问题(可能是他们中的一些是重复的)名单:https://github.com/davidhalter/jedi/search?q=numpy&state=open&type=Issues&utf8=%E2%9C%93

这就是为什么你没有得到竣工的NumPy的阵列,恢复,目前可以蟒蛇不会为NumPy提供自动完成功能,因为Jedi无法为其提供自动完成功能。

0

我只想补充一点,我发现了一个非常丑陋的解决方法,但可能对其他人有用。

有关的代码片段:

from __future__ import division 
from sklearn import datasets 
import numpy as np 
def main(): 
    ds = datasets.load_boston() 
    x = ds.data 
    y = ds.target 
    assert isinstance(x, np.ndarray) 
    x.ravel()   # Autocomplete for x now works. 

if __name__ == '__main__': 
    main() 

的自动完成numpy的断言语句后的作品。

似乎像杰迪需要一点提示。

+0

在这里https://github.com/davidhalter/jedi/issues/372与David分享这条信息可能是一个好主意 – DamnWidget