环境

Python 3.7.7 x64
Windows 10 1809 x64

描述

在使用某API时,python需要安装suds,而 pip install suds 报错:ModuleNotFoundError: No module named 'client'

ERROR: Command errored out with exit status 1:
     command: 'c:\program files\python37\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-_oz2fhgh\\suds\\setup.py'"'"'; __file__='"'"'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\pip-install-_oz2fhgh\\suds\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\ADMINI~1\AppData\Local\Temp\pip-pip-egg-info-w62pne7a'
         cwd: C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-_oz2fhgh\suds\
    Complete output (7 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-_oz2fhgh\suds\setup.py", line 20, in <module>
        import suds
      File "C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-_oz2fhgh\suds\suds\__init__.py", line 154, in <module>
        import client
    ModuleNotFoundError: No module named 'client'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

解决

pip client
pip install suds

后续报错

安装后,在执行代码过程中报错:

Traceback (most recent call last):
  File ".\icoremail.py", line 2, in <module>
    from suds.client import Client
  File "C:\Program Files\Python37\lib\site-packages\suds\client.py", line 242
    except Exception, e:
                    ^
SyntaxError: invalid syntax

后续解决

原来是由于 suds 已经很久未更新,且 suds 的 client 模块是基于 Python 2.x 编写的,suds-jurko 对其进行了升级以便支持 Python 3,如果 suds 再度更新将会把 suds-jurko 合并到 suds。所以 Python 3 应安装 suds-jurko。

pip install suds-jurko

补充

安装方式一:如果先安装 client,再安装 suds,再安装 suds-jurko,运行代码不会报错。
安装方式二:如果先安装 client,再安装 suds-jurko,运行代码不会报错。
安装方式三:如果先安装 client,再安装suds,再安装 suds-jurko,再卸载 suds,运行代码会报错,错误与"后续报错"一致,则此时必须卸载client, suds, suds-jurko。再重新安装,安装方式一和二均可。

最后修改:2020 年 08 月 24 日 11 : 00 PM
如果觉得文章帮助了您,您可以随意赞赏。