Python IDLE. Автозаполнение/показ завершений не работает

IDLE очень хитроумно показывает, когда на самом деле будет отображаться меню автозаполнения. В последнее время он вообще не работал или, более конкретно, работает только во время интерактивного сеанса.

Я использовал Code Blocks для C, и я действительно привык к очень хорошим функциям автозаполнения, поэтому немного расстраивает их отсутствие - особенно когда я пытаюсь изучить новый фреймворк и какой класс связан с каким методы и т.д. и т.д.

Есть ли простое решение, чтобы снова запустить автозаполнение IDLE? Я использую Python версии 2.7.

Может быть, есть простой редактор, который я должен изучить? Я попробовал Vim, который был слишком тяжел для моих простых нужд, Ninja, который я не мог заставить ни на что работать, и Sublime text 2, с которым я не мог заставить играть мои вещи wxpython. Каким будет хороший вариант? Что-нибудь похожее на Code Blocks было бы круто, хотя, я был бы совершенно счастлив с IDLE, если бы он работал последовательно!

ЗАПРОШЕННАЯ УТОЧНЕНИЕ: Хорошо, так что, похоже, у меня есть некоторые термины в обратном направлении. Под неинтерактивным я имею в виду, например, щелчок правой кнопкой мыши по файлу python и выбор "редактировать с IDLE". Это поднимает то, что, я думаю, можно описать как текстовый редактор. Вы можете ввести весь свой код здесь. Когда все будет готово, вы нажимаете F5 или выбираете Run, и он запускает (то, что я имел в виду) интерактивный терминал. Здесь вы можете ввести код, нажать клавишу возврата и мгновенно оценить этот код.

Что касается моего вопроса, это относится к первой части IDLE, где вы редактируете код. Иногда при наборе текста, после. он отобразит доступные методы или после открытых скобок даст подсказки относительно ожидаемых значений. но дело в том, что иногда это делает, иногда нет.

Ответы

Ответ 1

Единственное, что я нашел до сих пор, это то, что если сеанс редактирования IDLE связан с оболочкой python (так называемый "интерактивный режим" в вопросе, то есть после попытки запустить отредактированный script), тогда "неинтерактивный" IDLE может автозаполняться на основе значений в интерактивном окне. Например, если я набираю

a = [];
a.appen

а затем нажмите <Tab> он ничего не сделает, но если я ранее набрал

a = []

в соответствующей оболочке питона, IDLE будет автозаполнен правильно.

Итак, мое единственное предложение - импортировать те же самые модули с одинаковыми именами в окне оболочки python, чтобы сделать их "видимыми" для неинтерактивного редактора IDLE.

Ответ 2

У меня была такая же проблема с IDLE, потому что я хочу изучать Qt, и поэтому автозаполнение очень полезно.

Как сказано в настройках IDLE, вы можете запустить автозаполнение с помощью "Control + Space", например, после "QtGui." Затем откроется меню, в котором вы можете прокрутить записи с помощью стрелок.

Ответ 3

В моем случае мне пришлось открыть меню "Параметры" → вкладка "Расширения" в редакторе и посмотреть, чтобы включить автозаполнение и другие соответствующие параметры. Они на самом деле были, но, просто нажав "Применить", хотя я не хочу ничего менять, я помогло.

Ответ 4

Иногда это связано с тем, что вам нужно ждать, чтобы получить предложения.

Когда вы переходите к options > extensions > general в completions popup wait, вы можете изменить его примерно до 500 мс. В моем случае это было 2000 мс по умолчанию.

Ответ 5

используя 'окно редактора IDLE', вы должны сначала сохранить и выполнить свой код. Запустив приложение, вернитесь в окно редактора, чтобы использовать автозаполнение.