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', вы должны сначала сохранить и выполнить свой код.
Запустив приложение, вернитесь в окно редактора, чтобы использовать автозаполнение.