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

Ubuntu20.04配置Python3.9虚拟环境遇_ssl模块缺失问题

解决Ubuntu 20.04 LTS中Python3.9虚拟环境缺失_ssl模块的方案

1. 清理已编译的Python3.9残留

先彻底移除之前手动编译的Python3.9,避免旧文件干扰:

# 定位Python3.9安装路径
which python3.9
# 删除相关文件及目录
sudo rm -rf /usr/local/bin/python3.9*
sudo rm -rf /usr/local/lib/python3.9/
sudo rm -rf /usr/local/include/python3.9/

2. 安装完整编译依赖

确保所有编译Python所需的依赖包都已安装,重点覆盖ssl相关组件:

sudo apt update
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget libsqlite3-dev

3. 重新编译Python3.9

选择最新的Python3.9.x稳定版本(示例为3.9.18),用正确的参数编译:

# 下载源码包
wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz
tar -xf Python-3.9.18.tgz
cd Python-3.9.18

# 配置编译参数,指定系统openssl路径(Ubuntu20.04的openssl根目录为/usr)
./configure --prefix=/usr/local/python3.9 --with-openssl=/usr --enable-optimizations

# 编译并安装(-j后为CPU核心数,按需调整)
make -j$(nproc)
sudo make altinstall

使用altinstall可避免替换系统默认Python版本,防止系统依赖异常。

4. 验证修复效果

创建新的虚拟环境并检查ssl模块:

# 创建虚拟环境
/usr/local/python3.9/bin/python3.9 -m venv my_test_env
source my_test_env/bin/activate

# 测试ssl模块是否可用
python -c "import ssl; print('SSL模块加载成功,版本:', ssl.OPENSSL_VERSION)"

若能正常输出openssl版本信息,说明问题已解决。

额外排查提示

  • 若编译过程中出现Could not build the ssl module警告,重新执行sudo apt install --reinstall libssl-dev并确认安装无报错。
  • 若源码包损坏,重新下载对应版本的Python源码后再编译。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:24:56