Есть функция вида:пользовательского ввода пользователем строки (объекта конструктор) не появляется/появляется эпизодически, когда вызывается из отдельного потока
def setup_my_object():
my_object = My_Object()
my_object_daemon = Pyro4.core.Daemon(port=55666)
Pyro4.Daemon.serveSimple({my_object: "my.object"},ns = False,daemon = my_object_daemon)
Pyro4 библиотека позволяет получить доступ к объекту по сети. Поскольку основной процесс создает несколько различных объектов, отдельный поток создается с помощью:
def main():
threaded_object = threading.Thread(target = setup_my_object)
threaded_object.start()
объекта имеет вид (в действительности конструктор является более сложным).
class My_Object(object):
def __init__(self):
name_option = input('\nDo you want to enter a name? [y/n]:\n')
if (name_option == 'y')
self.m_name = add_name()
def add_name(self):
name = input('\nPlease enter the name: \n')
return(name)
Главный() работает на сервере linux, запущенном с консоли python. Проблема в том, что когда я запускаю main(), консоль никогда не пропускает меня. «Вы хотите ввести имя?». Я вздрагиваю, входя - подождите 30 секунд - ничего. Хит введите два раза - подождите 30 секунд. Только когда я нажимаю кнопку, как пять раз (и непреднамеренно шестой), он отобразит «Вы хотите ввести имя?». Что происходит и как я могу избежать этого, т. Е. Получить мгновенную распечатку «Вы хотите ввести имя?»?
Дополнительная информация: Я не вижу этой проблемы при запуске на компьютере под управлением Windows; проблема заключается только в машине Linux.