Python 输入干扰 SimpleXMLRPCServer

Python input interfering with 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) 解决方案。

您正在使用 input() where you ought to use raw_input()。试试这个:

return raw_input("Allow? ").lower() in ['y', 'yes']