Ввод Python, мешающий SimpleXMLRPCServer

У меня есть сервер по этим направлениям:

from SimpleXMLRPCServer import SimpleXMLRPCServer
def ack(msg):
    return input("Allow? ").lower() in ['y', 'yes']
server = SimpleXMLRPCServer(("localhost", 8080))
server.register_function(ack, "ack")
server.serve_forever()

И клиент по этим направлениям:

import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8080")

with open(myfile) as mfd:
    for line in mfd.readlines():
        if proxy.ack(line):
            print line

Это приводит к отправке ошибки клиенту. Код ошибки и строка:

1
<type 'exceptions.NameError'>:name 'y' is not defined

Мое предположение - потребление input на стороне сервера убивает совершенство POST XML-RPC.

Я бы предпочел не кодировать какой-либо метод с двумя клиентами и сервером - это похоже на простую установку 1:1, которую я использую.

Действительно, я открыт для любого альтернативного (python) решения.

1 ответ

Решение

Ты используешь input() где вы должны использовать raw_input(), Попробуй это:

return raw_input("Allow? ").lower() in ['y', 'yes']
Другие вопросы по тегам