You need to enable JavaScript to run this app. WSL下Ubuntu18.04运行Ansible Azure playbook报ModuleNotFoundError
优惠活动
大模型
产品
解决方案
定价
更多

WSL下Ubuntu18.04运行Ansible Azure playbook报ModuleNotFoundError

问题根因

报错核心是Ansible实际调用的Python解释器,和此前安装Azure依赖的Python环境完全错配。即便安装过相关包,只要安装路径不在当前解释器的模块搜索路径范围内,就会触发No module named 'azure.common'报错,这也是反复更换安装方式、切换Python版本、重装系统都未解决问题的核心原因。

分步修复操作
  • 锁定Ansible实际调用的Python解释器
    执行命令获取Ansible当前绑定的解释器路径:ansible localhost -m debug -a "var=ansible_python_interpreter"
    本次报错已经明确指向使用的解释器路径为/usr/bin/python3,后续所有依赖安装操作都必须基于该路径的解释器执行,禁止直接使用全局默认的pip命令装包。
  • 校准对应解释器的pip工具版本
    Ubuntu 18.04系统源自带的pip版本过低,直接安装Azure依赖会出现组件拆分不匹配的问题,先执行升级命令:
    /usr/bin/python3 -m pip install --upgrade pip setuptools wheel
  • 强制使用指定解释器安装匹配的Azure依赖
    不要用裸pip install命令,直接调用对应解释器的pip模块执行安装:
    /usr/bin/python3 -m pip install "ansible[azure]>=2.0.0"
    特别注意:WSL环境下如果之前配置过Windows侧Python的环境变量、或者用户目录下存在自定义的pip可执行文件,很容易出现普通pip命令把包装到其他Python环境的情况,Ansible调用系统Python时完全检索不到对应模块,这是绝大多数同类报错的隐藏诱因。
  • 验证安装有效性
    先通过解释器直接测试模块导入是否正常:
    /usr/bin/python3 -c "import azure.common; print('依赖导入成功')"
    确认无导入报错后,再运行原有的VNET创建playbook即可。

避坑提醒:不要单独安装零散的Azure SDK包,Azure Ansible模块的依赖存在严格的版本对应关系,零散安装单个包很容易出现版本冲突、组件缺失的问题,直接安装ansible[azure]聚合依赖会自动匹配所有兼容版本。

内容的提问来源于stack exchange,提问作者ND90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 09:06:00