SOAP y py2exe
Pedro Javier Aljaro Velasco
i02alvep en uco.es
Mar Abr 6 12:58:22 CEST 2004
Hola a todos, estoy haciendo un ejemplo de servicio web en python
utilizando SOAP. Utilizo Windows XP, python-2.2, SOAPpy-0.11.3 y
py2exe-0.4.1. Mi servicio web esta dividido en dos partes: un script
cliente y otro script servidor, cuyo código os detallo a continuación:
- Fichero script.py (servidor):
def bienvenida(arg):
return "Hola " + arg + " acabas de acceder al servicio web de
i02alvep"
def fibrec(n):
"Escribe n números de Fibonacci."
if (n < 2):
return n
else:
return fibrec(n-1) + fibrec(n-2)
def temperatura():
from SOAPpy import SOAPProxy
s=SOAPProxy("http://services.xmethods.net/soap/servlet/rpcrouter",namesp
ace="urn:xmethods-Temperature")
temF=s.getTemp('92612')
resultado=(temF-32)/1.8
return resultado
server = SOAPServer(('i02alvep.2mydns.net', 8008))
server.registerFunction(bienvenida)
server.registerFunction(fibrec)
server.registerFunction(temperatura)
server.serve_forever()
- Fichero cliente.py (cliente):
from SOAPpy import SOAPProxy
s=SOAPProxy("http://i02alvep.2mydns.net:8008")
nombre=str(raw_input("Introduce tu nombre... "))
print " "
print s.bienvenida(nombre)
print " "
numero=int(raw_input("Introduce un numero para calcular la serie de
Fibonacci... "))
print " "
print "Resultado: "
print s.fibrec(numero)
print " "
print "EJEMPLO DE SERVICIO WEB: Temperatura de California"
print s.temperatura()
Todo esto funciona correctamente ejecutandolo en scripts. Pues bien, lo
que yo quiero hacer es convertir el script cliente.py a un archivo.exe,
en vez de ejecutar el script poniendo “python cliente.py”. Para
convertir este archivo a .exe estoy utilizando py2exe de la misma forma
que ya habeis indicado otras veces en esta lista, pero después de poner
“python setup.py py2exe”, me voy al directorio dist y ejecuto
cliente.exe y me da el siguiente fallo:
Traceback (most recent call last):
File "<string>", line 2, in ?
File "SOAPpy\Client.pyc", line 273, in __init__
LookupError: unknown encoding: UTF-8
He probado con ejemplos mas sencillos como el hola mundo y me ha
funcionado correctamente. Espero que me podais ayudar.
Saludos a la lista y gracias de antemano
Pedro Javier Aljaro Velasco
Más información sobre la lista de distribución Python-es