Привет всем,

я новичёк в питоне, может поэтому никак не могу разобраться в следующей проблеме:

имеется скрипт на php который работает (хотя тяжело это назвать скриптом, ну да ладно):
----------------------------------------
<?php
ini_set('soap.wsdl_cache_enabled', 1);
$client = new SoapClient('http://sun2.lehmanns.de:8080/.beta/v2/lobsuche.wsdl');
$result = unserialize($client->ISBNSearch("9783785735848"));
echo $result."\n";
?>
----------------------------------------
я упорно пытаюсь сделать тоже самое на питоне, но увы ничего не получается, делаю я это так:
----------------------------------------
from SOAPpy import WSDL
wsdlFile = 'http://www.xmethods.net/sd/2001/TemperatureService.wsdl')
server= WSDL.Proxy(wsdlFile)
----------------------------------------
но уже после этих строк питон возмущается, а иммено так:
----------------------------------------
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/var/lib/python-support/python2.5/SOAPpy/WSDL.py", line 62, in __init__
self.wsdl = reader.loadFromStream(stream, wsdlsource)
File "/var/lib/python-support/python2.5/SOAPpy/wstools/WSDLTools.py", line 34, in loadFromStream
wsdl.load(document)
File "/var/lib/python-support/python2.5/SOAPpy/wstools/WSDLTools.py", line 247, in load
service.load(ports)
File "/var/lib/python-support/python2.5/SOAPpy/wstools/WSDLTools.py", line 1014, in load
binding = ParseQName(binding, element)
File "/var/lib/python-support/python2.5/SOAPpy/wstools/WSDLTools.py", line 1302, in ParseQName
nsuri = DOM.findTargetNS(element)
File "/var/lib/python-support/python2.5/SOAPpy/wstools/Utility.py", line 550, in findTargetNS
raise DOMException('Cannot determine target namespace.')
SOAPpy.wstools.Utility.DOMException: Cannot determine target namespace.
----------------------------------------

никак не могу понять почему пхп с этим wsdl работает а питон нет :-(
я пробовал с некоторыми другими wsdl-ями, там всё нормально

подскажите в чём проблема и как мне её решить?

заранее спасибо.
Во первых, я вижу, что WSDL, который ты используешь в PHP отличается от того, что ты пытаешься использовать в Python.
Во вторых, по адресу http://www.xmethods.net/sd/2001/TemperatureService.wsdl, просто ничего нет.

..bw
я перепутал, в питоне я использую тотже wsdl, когда копировал, так получилось.
У меня нет проблем:
>>> import SOAPpy
>>> SOAPpy.__version__
'0.11.3'
>>> name = 'http://sun2.lehmanns.de:8080/.beta/v2/lobsuche.wsdl'
>>> server= SOAPpy.WSDL.Proxy(name)
>>> server.methods
{u'ISBNSearch': <SOAPpy.wstools.WSDLTools.SOAPCallInfo instance at 0xa1de38c>}
>>> server.ISBNSearch('9783785735848')[:50]
u'a:40:{i:0;s:15:"Herbert, Frank;";s:5:"autor";s:15:'
Правда зря в сервисе используется php сериализация (или что там?). Он "нормален" только для php. SOAP может возвращать пользовательские структуры.

..bw
>>> SOAPpy.__version__
'0.12.0'

может иммено в этом и проблема?

а как откатиться в убунту на более ранию версию SOAPpy?
http://pywebsvcs.sourceforge.net/
Попробуй использовать 0.11.5, если не получится, будем разбираться дальше.

p.s. Попробуй, для начала, установить PyXML. Возможно это решит проблему.

..bw
>p.s. Попробуй, для начала, установить PyXML. Возможно это решит проблему.
уже установлена

насчёт 0.11.5 мне её вручную ставить? если да, то это не хорошо, но если уж придётся, кстати апт-ом сначала лудше удалить нынешнию версию?
> насчёт 0.11.5 мне её вручную ставить? если да, то это не хорошо, но если уж придётся, кстати апт-ом сначала лудше удалить нынешнию версию?
Это хорошо и чаще всего так и придется делать. Первоисточник обновляется значительно чаще чем пакеты в дистрибутивах. И работать с ним проще (опять же возникает вопросов с так называемым откатом). Да, следует сначала удалить пакет, установленный apt'ом (или aptitude'ом).

..bw
ок попробую, но сейчас мне нада убегать, вечером как домой приду попробую и отпишусь :-)