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
相关产品推荐
相关产品推荐

