Связь с Python оболочкой через Node.js приложение Electron - PullRequest
1 голос
/ 20 апреля 2020

Итак, я работаю над этим приложением 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, поэтому, если что-то неясно, пожалуйста, дайте мне знать

...