40

Trying to install suds with pip-3.2 and it fails with the error

sudo pip-3.2 install suds
Downloading/unpacking suds
  Running setup.py egg_info for package suds
  Traceback (most recent call last):
  File "<string>", line 16, in <module>
  File "/tmp/pip-build/suds/setup.py", line 20, in <module>
    import suds
  File "suds/__init__.py", line 154, in <module>
    import client
ImportError: No module named client
Complete output from command python setup.py egg_info:
Traceback (most recent call last):

File "<string>", line 16, in <module>

File "/tmp/pip-build/suds/setup.py", line 20, in <module>

import suds

File "suds/__init__.py", line 154, in <module>

import client

ImportError: No module named client

Which module is this named client and how do I install it if need be?

lukik
  • 3,919
  • 6
  • 46
  • 89

8 Answers8

85

According to this page, you should try running sudo pip-3.2 install suds-jurko. It looks like suds may not have been updated to work with 3.2 whereas suds-jurko has been. Hope this helps!

EDIT:

From the suds-jurko PyPI page:

Lightweight SOAP client (Jurko's fork).

Based on the original 'suds' project by Jeff Ortel (jortel at redhat dot com) hosted at 'https://fedorahosted.org/suds'.

'Suds' is a lightweight SOAP-based web service client for Python licensed under LGPL (see the LICENSE.txt file included in the distribution).

This is hopefully just a temporary fork of the original suds Python library project created because the original project development seems to have stalled. Should be reintegrated back into the original project if it ever gets revived again.

James Brewer
  • 1,745
  • 14
  • 17
7

In python 3.7.7, you can use

pip install suds-py3

to install suds py3 package. If your code not work as expected, you can delete the suds directory in

python3.7/site-packages/

and rerun

pip install suds-py3
Venusor
  • 181
  • 2
  • 7
2

Locate client.py and add its path in PYTHONPATH. This will solve your problem.

In Windows Python 3.5 it was in Python35\Lib\http. PYTHONPATH=E:\apps\Python35\Lib;E:\apps\Python35\Lib\http;

Jason LeMonier
  • 195
  • 1
  • 7
1

I am facing the similar sort of problem. I've installed suds-jurko0.6, but when I am importing suds (import suds), and doing dir(suds) in the python3.3 shell, the output is the following:

['BuildError',
 'BytesIO',
 'MethodNotFound',
 'PortNotFound',
 'Repr',
 'ServiceNotFound',
 'SoapHeadersNotPermitted',
 'TypeNotFound',
 'UnicodeMixin',
 'WebFault',
 '__build__',
 '__builtins__',
 '__cached__',
 '__doc__',
 '__file__',
 '__initializing__',
 '__loader__',
 '__name__',
 '__package__',
 '__path__',
 '__version__',
 'byte_str',
 'byte_str_class',
 'null',
 'objid',
 'sys',
 'tostr',
 'version']

That is, python is not importing suds modules. My hackish solutions so far has been doing sys.path.append(suds.path[0]). I am not entirely happy with it, though. A more rubbost solution should be related to the ini.py file at the top of the suds package.

jmrosal
  • 191
  • 2
  • 10
  • 1
    The original suds has a slightly wacky import scheme that actually allow you to use suds.client (and other names like suds.cache) after doing an "import suds". suds-jurko cleaned up the imports, so now you need to import those names specifically. You need to do either "import suds.client" and refer to it as suds.client or "from suds import client" if you want to refer to client directly. – reteptilian Apr 21 '16 at 19:25
1

I would recommend installing the latest jurko developer's cut, which should handle an issue with recursion depth loading for big WSDL's (I ran into this with the NetSuite WSDL) This version should fix the issue.

$ sudo pip install bitbucket.org/jurko/suds/get/tip.tar.gz#egg=suds

Here is the Bitbucket Project page:

https://bitbucket.org/jurko/suds/wiki/Home

Johnny Gasyna
  • 461
  • 1
  • 3
  • 13
1

Basically there is a problem with the compatbility of suds library and python version . Your python version should be 2.7.14.

I downgraded my python version 3.6 to 2.7.14 and it worked for me.

Please let me know , if there are any further errors.

0

Often times errors like this result from an error to source .venv/bin/activate, where .venv is the location of your virtualenv.

mecampbellsoup
  • 1,260
  • 18
  • 16
-1

Maybe is too late, but you would try this:

try:
   from suds.client import Client
except ImportError:
   print('Cannot import SUDS')