【发布时间】:2011-07-09 22:40:19
【问题描述】:
我一直在尝试用一些 python 脚本创建一个 Web 服务,但似乎运气不佳。一般来说,我是 Web 服务的新手,但我真的很想弄清楚这一点。我在 Windows 7 上并使用 IIS7。该服务还需要是 SOAP。
我已经阅读了大多数与 python 和 SOAP 相关的帖子,并尝试了几乎所有不同的库,但其中大多数只是让我难以理解(尤其是 ZSI/SOAPpy)。 Ladon 库似乎是我所需要的最好(也是最简单的),但教程 http://www.youtube.com/watch?v=D_JYjEBedk4&feature=feedlik 在 5:10 将它带到服务器时让我失去了兴趣。当我在 cmd 中键入 ladon2.6ctl 时,windows 似乎变得很混乱。我猜这有点不同,因为他在 Linux 上运行并使用 Apache。
因此,任何有关如何在 Microsoft 'stuff' 上运行 python web 服务的提示将不胜感激,因为我已经尝试弄清楚这些东西太久了。
需要注意的一点是,事情之所以如此具体(而且看起来很奇怪),是因为我拥有的脚本使用 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
【问题讨论】:
标签: python web-services soap arcgis zsi