Arch Linux下az login报错及Python依赖问题咨询
问题根源与解决方案
问题根源
这是系统Python环境损坏 + azure-cli调用路径错误的混合问题:
- 系统
/usr/bin/python依赖的libpython3.10.so.1.0共享库缺失,说明Python 3.10安装不完整或被错误移除,直接调用系统Python会触发加载错误。 - azure-cli自身携带独立Python环境,但
az命令的启动脚本默认调用了系统的/usr/bin/python,而系统Python中未安装azure-cli相关模块,因此触发ModuleNotFoundError。
解决方案
1. 临时绕开系统Python完成az login
直接使用azure-cli自带的Python执行登录命令,避免调用损坏的系统Python:
/home/user/lib/azure-cli/bin/python -m azure.cli login
2. 修复az命令的默认调用路径
修改az命令的启动脚本,让它默认使用自身携带的Python:
- 找到
az脚本的位置:which az - 编辑该脚本,将第一行的shebang(
#!/usr/bin/python)替换为azure-cli自带Python的路径:
保存后即可正常使用#!/home/user/lib/azure-cli/bin/pythonaz命令。
3. 修复系统Python共享库问题(不影响ansible等依赖)
先确认ansible依赖的Python版本:
ansible --version
- 如果ansible使用系统当前默认Python(非3.10),可安装Python 3.10补全缺失文件:
# 若Arch官方仓库仍有python3.10包 sudo pacman -S python3.10 # 若官方仓库已移除,可通过AUR安装python310包 - 若不想安装额外Python版本,可临时通过环境变量指定共享库路径(仅临时生效):
export LD_LIBRARY_PATH=/home/user/lib/azure-cli/lib:$LD_LIBRARY_PATH # 之后执行python -version即可临时正常运行
内容的提问来源于stack exchange,提问作者j0can
相关产品推荐
相关产品推荐

