0

在py2中有

rv = xmlrpc.pastes.newPaste(language, code, None, filename, mimetype, private)

我收到错误:期望一个具有缓冲区接口的对象

找不到任何关于 xmlrpc 和 py3 的文档。我只找到了这个片段:

p1 = subprocess.Popen(['gpg','--clearsign'], stdin = subprocess.PIPE, stdout=subprocess.PIPE)
p1.stdin.write(bytes(input, 'UTF8'))
output = p1.communicate()[0]

s = ServerProxy('http://paste.pocoo.org/xmlrpc/')
pasteid = s.pastes.newPaste('text',output.decode())
print ("http://paste.pocoo.org/raw/",pasteid,"/", sep="")

但我仍然对此感到困惑......我的版本使用了很多参数,我在哪里可以找到它的完整描述/修复它?

谢谢你。

4

2 回答 2

3

该错误消息通常意味着它正在寻找str(在 Python 3 中是 Unicode),而不是bytes. 就像在示例中一样,您需要解码以字节为单位的参数。也许:

rv = xmlrpc.pastes.newPaste(language, code.decode(), None, filename, mimetype, private)

但是如果不查看您的代码,很难说出问题所在。

于 2011-07-25T12:03:55.743 回答
1

在 Python 3.xmlrpclib中已被拆分为两个模块,xmlrpc.client并且xmlrpc.server.

3.2.1 的文档可以在以下位置找到:

http://docs.python.org/release/3.2.1/library/xmlrpc.client.html

http://docs.python.org/release/3.2.1/library/xmlrpc.server.html

于 2011-07-25T11:55:20.843 回答