2011-07-09 41 views
0

我一直在试图创建一些web服务出一些python脚本,并且似乎没有太多的运气。一般来说,我对网络服务不太熟悉,但真的很想弄清楚这一点。我在Windows 7上并使用IIS7。该服务还需要成为SOAP。在windows 2.6上使用Ladon在Python 2.6上

我已阅读了大多数与python和SOAP有关的帖子,并尝试了几乎所有不同的库,但其中大多数只是在我的头上(尤其是ZSI/SOAPpy)。 Ladon图书馆似乎是最好的(也是最简单的)我需要的东西,但当他把它带到服务器时,教程http://www.youtube.com/watch?v=D_JYjEBedk4&feature=feedlik在5:10时失去了我。当我在cmd中键入ladon2.6ctl时,它似乎像窗口很混乱。我猜测它有点不同,因为他在Linux上运行并使用Apache。因此,任何关于如何获得运行在微软'东西'上的python web服务的提示都将不胜感激,因为我一直在试图弄清楚这些东西太久了。

有一点需要注意的是,事情如此具体(而且看起来很奇怪)的原因是因为我使用ESRI的“arcpy”进行了大量地理处理。

--Addition--

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 

回答

0

总结为别人感兴趣的修复,删除这3个拉冬模块“系统日志导入”:
拉冬/接口/ jsonwsp.py - 6号线
拉冬/调度/ dispatcher.py - 7行
ladon/server/wsgi_application.py - 第37行

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

+0

非常感谢Jakob的帮助。 – Royce

1

我必须承认,我通常使用Linux几乎都和我没有尝试过拉冬在Windows上一会儿。我将在今天晚些时候启动我的Windows安装程序,看看是否有任何问题。

你写道,ladon2.6ctl得到的困惑。你有一个异常追踪?

+0

我刚在窗户上安装了Ladon。原来,在3个不同的ladon模块中有syslog导入,我在几个月前使用它来调试LadonWSGIApplication类。这些系统日志导入应该在我完成后被删除,但我忘记了。无论如何,系统日志功能不会在任何地方使用,因此您可以在本地删除它们 - ladon/interfaces/jsonwsp.py [6] ladon/dispatcher/dispatcher.py [7] ladon/server/wsgi_application.py [37]。我已经在launchpad.net上删除了来自sourcetree的进口,因此预计将于8月1日发布的Ladon 0.6.1的下一个版本应该可以开箱即用。 –

+0

我冒昧地将这个添加为[bug](https://bugs.launchpad.net/ladon/+bug/808331) - 这是正确的方式去处理像你这样的案例。我希望这有助于:-) [拉登在Windows上的行动](https://launchpadlibrarian.net/74903034/ladon-on-windows.png) –

+0

我添加了回溯到这个问题,非常感谢你的帮助。 – Royce