quatanium / python-onvif

ONVIF Client Implementation in Python
MIT License
474 stars 322 forks source link

onvif-cli does not work with Python 2.7.10 (Ubuntu/Debian) but with Python 2.6.6 (CentoOS 6) #31

Open jenswes opened 8 years ago

jenswes commented 8 years ago

Hi,

In recent ubunt: python --version Python 2.7.10

onvif-cli -v -u 'user' -a 'password' --host 'IP.ADDR' --port 8899 -w /home/jens/src/onvif/python-onvif/wsdl

Traceback (most recent call last): File "/usr/local/bin/onvif-cli", line 9, in load_entry_point('onvif==0.1.3', 'console_scripts', 'onvif-cli')() File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.3-py2.7.egg/onvif/cli.py", line 160, in main cli.setup(args) File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.3-py2.7.egg/onvif/cli.py", line 39, in setup args.wsdl, encrypt=args.encrypt) File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.3-py2.7.egg/onvif/client.py", line 227, in init self.update_xaddrs() File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.3-py2.7.egg/onvif/client.py", line 237, in update_xaddrs capabilities = self.devicemgmt.GetCapabilities({'Category': 'All'}) File "/usr/local/lib/python2.7/dist-packages/onvif-0.1.3-py2.7.egg/onvif/client.py", line 31, in wrapped raise ONVIFError(err) onvif.exceptions.ONVIFError: Unknown error: global name 'self' is not defined

Here it works

python --version Python 2.6.6

onvif-cli -u 'jens' -a 'jens' --host 'IP.ADDR' --port 8899 -w /root/src/python-onvif/wsdl ONVIF >>>

jens

eLvErDe commented 8 years ago

Hello,

It took me some time to figure out but the problem actually comes from Debian SUDS package that break the API by introducing proper timezone handling.

PR has been sent and merged already: https://github.com/suvit/suds-passworddigest/pull/4

I also created Debian's package available here: https://cloud.le-vert.net/public.php?service=files&t=7f106d986b07256ba7efcf88e26788f6

They need suds-passworddigest package from here: https://cloud.le-vert.net/public.php?service=files&t=665bdfb0abe467cf6b6a28d50370dc65