Pregunta

en py2 había

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

Estoy recibiendo error: esperaba un objeto con la interfaz de búfer

No puedo encontrar ningún documento sobre XMLRPC y PY3. Encontré solo este fragmento:

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="")

Pero todavía estoy siendo confundido al respecto ... mi versión usó muchos argumentos, ¿dónde puedo encontrar una descripción completa / arreglarlo?

Gracias.

¿Fue útil?

Solución

Ese mensaje de error generalmente significa que está buscando str (que es unicode en Python 3), no bytes . Como en el ejemplo, deberá decodificar el argumento que está en bytes. Quizás:

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

Pero es difícil saber cuál es el problema sin ver su código.

Otros consejos

En Python 3. xmlrpclib se ha dividido en dos módulos, xmlrpc.client y xmlrpc.server.

Los documentos para 3.2.1 se pueden encontrar en:

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top