Итак, я работаю над этим приложением Electron (которое использует Node.js), которое в основном является внешним интерфейсом для скрипта python, который функционирует как бэкэнд моего приложения. Теперь у меня следующая ситуация: я создал скрипт python, который в какой-то момент запрашивает у пользователя ввод данных с помощью простой функции input (), однако, когда эта строка выполняется, я получаю следующее ошибка:
Uncaught Exception:
Error: EOFError: EOF when reading a line
at PythonShell.parseError
...
File ".../framework.py", line 182, in _determine_threshold
choice = input('Do you think most of the red points are outliers? (y / n): ')
Теперь я не очень знаком с stdin / out, но мне удалось отобразить несколько простых операторов печати в моей консоли. Теперь мой вопрос: есть ли способ предложить пользователю ввести данные, и если да, то как? Чтобы было ясно: я ищу (любой) способ взаимодействия с бэкэндом приложения. Это не обязательно делать с использованием функции input (). Я просто хотел бы отправить вопрос во внешний интерфейс, ответить на него и отправить его обратно во внутренний.
В настоящее время я использую пакет под названием python -shell, но любое решение с использованием нормального порожденного дочернего процесса тоже будет очень кстати!
Ниже и мой python и код Electron / Node. Python:
# This is what i want prompted
choice = input('Do you think most of the red points are outliers? (y / n): ')
# This flushes previous (but not this) print statements to the console, right?
sys.stdout.flush()
# Here I want to insert the choice of the user, from front-end, via node, to the script.
for choice in sys.stdin:
if choice == 'y':
...
Заранее спасибо! Ps. это мой первый вопрос по StackOverflow, поэтому, если что-то неясно, пожалуйста, дайте мне знать