#python #ipython #spyder
Вопрос:
Я обновился до Spyder 4.2.0 в декабре (2020). Ранее я использовал Spyder 3.x. Я запускаю свой код из редактора в консоли IPython. Это простые программы, которые запрашивают ввод с консоли. Это похоже на запуск из командной строки ( python program.py args
).
Когда я тестирую, я часто использую разные комбинации одного и того же ввода (например, имена пользователей). С помощью Spyder 3.x я мог прокручивать предыдущие входные данные с помощью стрелок вверх/вниз во время запуска программы, чтобы повторно использовать ранее введенное значение. Я не могу понять, как добиться такого же поведения с Spyder 4. Пример показан в блоке кода ниже.
runfile('E:/walker/optimization/test_prog.py', args='../large', wdir='E:/walker/optimization')
Loading data...Data loaded.
Input Name1: [I input the 1st name]
Input Name2: [I input the 2nd name]
Some printed output here...
Now the program prompts for new input...
Input Name1: [I want to reenter name2 above by going back with the up arrow]
Input Name2: [I want to reenter name1 above by going back with the up arrow]
Я не могу понять, как это сделать с Spyder 4.x. Я подозреваю, что что-то изменилось с обновлением Spyder 3. Я посмотрел настройки для IPython и запустил их в разделе Инструменты/Настройки. Никакого упоминания о стрелках или прокрутке ввода.
Примечание: Прокрутка в консоли отлично работает, когда я кодирую в консоли и хочу получить предыдущую команду Python. Этот вопрос относится только к вводу программы во время выполнения кода из редактора.
Комментарии:
1. ( Сопровождающий Spyder здесь ) То, как мы работаем
input
в Spyder 4, значительно изменилось по сравнению со Spyder 3. Кроме того, учитывая, что нам потребуются значительные временные затраты для поддержки этого варианта использования, а выигрыш очень мал, я не думаю, что мы восстановим эту функциональность, извините.2. @Карлос Кордоба, спасибо за объяснение-по крайней мере, я ничего не упускаю. К сожалению, это не будет реализовано. Я удивлен, что это так сложно. Я могу получить предыдущие входные данные в окне командной строки Windows (после ввода
python prog.py
). Еще раз спасибо.3. Проблема в том, что наша консоль IPython не является реальным системным терминалом (например
cmd.exe
, илиxterm
) и не использует для работы терминальные технологии. Вместо этого это графическое приложение, которое имитирует внешний вид терминала. Итак, чтобы поддержать этот вариант использования в Spyder 4 , нам нужно добавить историю команд вinput
(отдельно от истории IPython и IPdb) и извлечь ее с помощью стрелок вверх и вниз. Вот почему я сказал, что это будет слишком много работы за слишком малую выгоду (вы первый, кого я слышал, кому это нужно).4. Интересный. Не беспокойтесь. Я использую это, когда запускаю простые тестовые примеры и мне нужно протестировать несколько другие входные данные. Я испортился с Spyder 3. 🙂 Теперь я просто запускаю эти тесты в командном окне.