Использование Ladon в Python 2.6 в Windows - PullRequest
0 голосов
/ 10 июля 2011

Я пытался создать веб-сервис из некоторых сценариев Python, и мне, похоже, не очень повезло.Я новичок в веб-сервисах в целом, но очень хотел бы выяснить это.Я на Windows 7 и использую IIS7.Служба также должна быть SOAP.

Я прочитал большинство постов, которые имеют какое-либо отношение к python и SOAP, и опробовал почти все разные библиотеки, но большинство из них просто кажутся мне (особенно ZSI / SOAPpy).Библиотека Ладона, кажется, будет лучше (и проще) для того, что мне нужно, но учебник 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

Ответы [ 2 ]

1 голос
/ 10 июля 2011

Я должен признать, что обычно я использую Linux почти для всего, и некоторое время я не пробовал Ladon на Windows.Позже я раскручиваю установку Windows позже и посмотрю, есть ли какие-либо проблемы.

Вы написали, что ladon2.6ctl get запутался.У вас есть исключение Traceback?

0 голосов
/ 12 июля 2011

Чтобы подвести итог исправления для всех, кто интересуется, удалите «импорт системного журнала» из этих трех модулей ladon:
ladon / interfaces / jsonwsp.py - строка 6
ladon / dispatcher / dispatcher.py - строка 7
ladon / server / wsgi_application.py - строка 37

Затем вам нужно изменить перевод строки с окна по умолчанию / r / n на / n. В Eclipse перейдите в «Окно» -> «Настройки» -> «Общие», затем выберите (не выпадающий) вкладку «Рабочая область». В правом нижнем углу выберите «другое» в разделе «Новый текстовый файл» и измените его на Unix.

...