Как мне получить пользовательский ввод для встроенной в Python функции «input» в самодельной среде python? - PullRequest
0 голосов
/ 01 января 2019

Я использую графический интерфейс tkinter для предоставления кусков кода в стек для моей программы, из которой можно рисовать и выполнять.проблема возникает, когда я использую встроенную в Python функцию «ввода».Он требует ввода с консоли и не принимает его от входа, предоставленного tkinter.Любая идея будет принята с благодарностью.

(Правка: я использую Python 3.5 через Anaconda на Windows 10)

полный код можно найти здесь: https://github.com/uhDreamer/simplePythonEnv/blob/master/simpleEnv.py

(пожалуйста, не судите код / ​​стиль слишком сильно, это в основном просто для развлечения и посмотреть, что я могу сделать.)

Честно говоря, я даже не знаю, с чего начать, чтобы решить эту проблему.Я подумал, может быть, перенаправить stdin, как я сделал с stdout, но я не мог найти ничего, что касается моей конкретной проблемы.

while running:
    if self.stack:
        code = self.stack.pop()
        with stdoutIO() as out:
            try:
                exec(code)
            except Exception as e:
                gui.log(str(e))
            finally:
                self.addToHistory(code)
        gui.log(out.getvalue())
    else:
        time.sleep(.1)

Мне нужно, чтобы программа получила свой ввод от следующего ввода, отправленного через графический интерфейс tkinter, и ждала его, если его нет.

...