在Windows上使用Python 2.6中的Ladon

时间:2011-07-09 22:40:19

标签: python web-services soap arcgis zsi

我一直在尝试用一些python脚本创建一个Web服务,但似乎没有太多运气。我是Web服务的新手,但我真的很想弄明白。我在Windows 7上使用IIS7。该服务还需要是SOAP。

我已经阅读了大多数与python和SOAP有关的帖子,并尝试了几乎所有不同的库,但其中大多数似乎只是在我脑海中(尤其是ZSI / SOAPpy)。 Ladon Library似乎对我所需要的东西最好(也是最简单),但教程http://www.youtube.com/watch?v=D_JYjEBedk4&feature=feedlik在5:10将它带到服务器时失去了我。当我在cmd中键入ladon2.6ctl时,似乎窗口变得非常混乱。我猜它有点不同,因为他在Linux上运行并使用Apache。

有了这个,关于如何使用微软'东西'运行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

2 个答案:

答案 0 :(得分:1)

我必须承认我通常使用Linux几乎所有东西,我还没有在Windows上试过Ladon一段时间。我将在今天晚些时候启动我的Windows安装,看看是否有任何问题。

你写的那个ladon2.6ctl搞糊涂了。你有异常追溯吗?

答案 1 :(得分:0)

要总结其他感兴趣的修复程序,请从这3个ladon模块中删除“syslog import”:
ladon / interfaces / jsonwsp.py - 第6行
ladon / dispatcher / dispatcher.py - 第7行
ladon / server / wsgi_application.py - 第37行

然后,您需要将换行符从窗口的默认值/ r / n更改为/ n。在Eclipse中,转到Window - &gt;偏好 - &gt;常规,然后选择(而不是下拉)工作区选项卡。在右下角,选择New text file line delimiter下的“other”并将其更改为Unix。