Я пытался создать веб-службу из некоторых скриптов Python, и, похоже, мне не очень повезло. Я новичок в веб-сервисах в целом, но мне бы очень хотелось разобраться в этом. Я нахожусь в Windows 7 и использую IIS7. Сервис также должен быть SOAP.
Я прочитал большинство сообщений, которые имеют какое-либо отношение к python и SOAP, и опробовал почти все различные библиотеки, но большинство из них просто кажутся мне непосильными (особенно ZSI / SOAPpy). Библиотека Ladon кажется лучшей (и самой простой) для того, что мне нужно, но учебник http://www.youtube.com/watch?v=D_JYjEBedk4&feature=feedlik теряет меня в 5:10, когда приносит его на сервер. Когда я набираю ladon2.6ctl в cmd, мне кажется, что окна сильно запутались. Я предполагаю, что это немного другое, потому что он работает в Linux и использует Apache.
При этом мы будем очень благодарны за любые советы о том, как запустить веб-службу python на «материалах» Microsoft, поскольку я слишком долго пытался разобраться в этом материале.
Следует отметить, что причина такой специфичности (и кажущейся странности) заключается в том, что имеющиеся у меня скрипты выполняют большую часть геообработки с помощью ESRI arcpy.
--Добавление--
Traceback on localhost:8080/TestService:
Traceback (most recent call last):
<br>File "c:\Python26\ArcGIS10.0\lib\site-packages\ladon-0.5.1-py2.6.egg\ladon\server\wsgi_application.py", line 229, in __call__
exec("import %s" % ','.join(self.service_list))
File "<string>", line 1, in <module>
File "c:\Users\r\workspace\ladon\src\testspace.py", line 3, in <module>
class TestService2(object):
File "c:\Users\r\workspace\ladon\src\testspace.py", line 4, in TestService2
@ladonize(int,int,rtype=int)
File "c:\Python26\ArcGIS10.0\lib\site-packages\ladon-0.5.1-py2.6.egg\ladon\ladonizer\decorator.py", line 87, in decorator
ladon_method_info = global_service_collection().add_service_method(f,*def_args,**def_kw)
File "c:\Python26\ArcGIS10.0\lib\site-packages\ladon-0.5.1-py2.6.egg\ladon\ladonizer\collection.py", line 119, in add_service_method
sinfo = self.source_info(src_fname)
File "c:\Python26\ArcGIS10.0\lib\site-packages\ladon-0.5.1-py2.6.egg\ladon\ladonizer\collection.py", line 79, in source_info
a = ast.parse(src)
File "c:\Python26\ArcGIS10.0\lib\ast.py", line 37, in parse
return compile(expr, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 1
from ladon.ladonizer import ladonize
^
SyntaxError: invalid syntax
образец кода:
from ladon.ladonizer import ladonize
class TestService2(object):
@ladonize(int,int,rtype=int)
def sum(self,a,b):
'''add two numbers<br>
param a: number 1
param b: number 2
rtype: sum of result
'''
return a+b