You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora35安装Azure CLI遇Python3.9 _ssl模块缺失问题求助

解决Fedora 35上Azure CLI运行时的_ssl模块缺失问题

问题根源

之前手动删除源码安装的Python 3.9不彻底,残留的/usr/local/lib/python3.9等文件与DNF安装的系统版Python 3.9冲突。系统版Python 3.9自带完整的_ssl模块,但Azure CLI误加载了未正确编译ssl模块的残留源码版Python,导致报错。

修复步骤

1. 彻底清理残留的Python 3.9文件

首先定位所有/usr/local下的Python 3.9残留文件:

find /usr/local -name "*python3.9*"

删除这些残留文件(注意不要误删系统包安装的文件,系统文件通常在/usr/lib、/usr/bin下):

sudo rm -rf /usr/local/lib/python3.9 /usr/local/bin/python3.9 /usr/local/include/python3.9

2. 修复系统版Python 3.9的完整性

重新安装系统提供的Python 3.9相关包,确保依赖(包括ssl模块)完整:

sudo dnf reinstall python3.9 python3.9-libs python3.9-openssl

验证ssl模块是否正常:

/usr/bin/python3.9 -c "import ssl; print(ssl.OPENSSL_VERSION)"

如果能输出OpenSSL版本号,说明模块已正常加载。

3. 确保Azure CLI调用正确的Python版本

检查Azure CLI默认调用的Python路径:

which az
# 查看az脚本开头的shebang行
head -n 1 $(which az)

如果shebang是#!/usr/bin/env python3.9,确保PATH中/usr/bin优先级高于/usr/local/bin(系统默认通常是这样),或者直接修改shebang为#!/usr/bin/python3.9,强制使用系统版Python:

sudo sed -i '1s/.*/#!/usr\/bin\/python3.9/' $(which az)

最后测试Azure CLI:

az --version

同类问题通用修复思路

  • 优先使用系统包管理器:避免源码安装与系统包的版本冲突,系统包会自动处理依赖(如openssl-devel),确保模块完整性。
  • 定位问题Python版本:用python3.x -c "import sys; print(sys.executable)"确认当前调用的Python路径,判断是否是残留的有问题版本。
  • 修复模块缺失:系统包安装的Python,通过dnf reinstall重装对应包;源码安装的Python,需先安装依赖开发库(如openssl-devel)后重新编译。
  • 清理冲突残留:彻底删除非系统包安装的文件,避免路径优先级导致的错误加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:35:22