Odoo 14外部API调用报错:No module named xmlrpc.client
问题根因
No module named xmlrpc.client报错的核心触发原因是Python环境版本不匹配:
xmlrpc.client是Python3标准库内置的XML-RPC客户端模块专属路径- Python2环境下的XML-RPC能力由独立的
xmlrpclib模块提供,不存在xmlrpc.client的嵌套包结构,因此会直接触发导入失败。
排查解决步骤
- 验证当前默认解释器版本
执行python --version,如果返回版本号为2.x系列,即为本次报错的直接原因 - 适配环境选择修正方案
- 优先使用Python3解释器运行脚本,执行命令:
python3 main.py(Odoo官方外部API示例代码本身就是按Python3语法编写,优先适配Python3环境可避免后续语法兼容问题) - 如果必须在Python2环境下运行脚本,修改导入语句增加版本兼容逻辑:
try: import xmlrpc.client except ImportError: import xmlrpclib as xmlrpc.client
- 优先使用Python3解释器运行脚本,执行命令:
- 排查多版本路径错配
多版本Python共存的系统中,执行which python可确认当前python命令指向的解释器绝对路径,避免出现“已安装Python3但系统python命令仍默认指向Python2”的路径匹配问题,必要时直接通过解释器全路径启动脚本,例如/usr/bin/python3 main.py - 排查本地文件命名冲突
确认当前脚本所在目录下不存在命名为xmlrpc.py的本地文件,避免脚本导入时优先匹配本地同名文件,覆盖Python标准库的内置模块。
内容的提问来源于stack exchange,提问作者Gbn
相关产品推荐
相关产品推荐

