2016-11-27 1 views
0

Я пытаюсь настроить ST3 как IDE для разработки моего Python.ST3 + Anaconda Python autocomplete бесполезные предложения

Вот фрагмент кода:

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" 
] 
} 

Вот список всех моих установленных пакетов:

  • Anaconda (v2.1.10)
  • краеведения (v.2016.09.12.07.22.25)
  • Control Package (v.3.2.1)
  • SideBarEnhancements
  • Тема - Равнина (v2016.11.07 .16.37.27)

Мои вопросы перечислены ниже:

1.) Если я печатаю дц. autocomplete не предлагает данные или target, но они должны быть действительными предложениями.

2.) Если я нахожу ds. autocomplete предлагает такие предложения, как: from, if, def и т. Д. Я считаю, что автозаполнение сканирует весь текстовый файл и добавляет в него предложения из строк. Есть ли способ отключить это и заставить его предлагать только соответствующие (функции, методы и переменные-члены) предложения?

3.) х является np.array типа, который имеет метод Ravel(). Опять же, этот метод не предлагается. На самом деле это не то, что я ожидаю от автозавершения.

Любая помощь очень ценится! С уважением

ответ

1

Известные проблемы в джедаях (библиотека, которую анаконда использует для обеспечения автозаполнения), чтобы завершить 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 – DamnWidget

Смежные вопросы