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

如何在Ubuntu 16.04中编译带有SSL支持的Python3.11?

解决Ubuntu 16编译Python3.11缺失_ssl模块问题

核心原因

Python 3.11要求OpenSSL版本至少为1.1.1,Ubuntu 16自带的1.0.2不满足该要求;且直接将自行编译的OpenSSL安装到/usr会与系统版本冲突,导致Python编译时无法正确识别。

解决步骤

  • 清理残留文件

    • 卸载系统自带的libssl-dev:
      sudo apt purge libssl-dev
      
    • 删除/usr目录下自行编译的OpenSSL相关文件:
      sudo rm -rf /usr/include/openssl /usr/lib/libssl* /usr/lib/pkgconfig/openssl.pc
      
    • 清理Python编译目录:
      cd Python-3.11.x && make clean
      
  • 独立编译安装OpenSSL 1.1.1

    • 下载OpenSSL 1.1.1w(长期支持版):
      wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
      
    • 解压并进入目录:
      tar xf openssl-1.1.1w.tar.gz && cd openssl-1.1.1w
      
    • 配置编译参数并安装到独立目录:
      ./config --prefix=/usr/local/openssl-1.1.1 --openssldir=/usr/local/openssl-1.1.1 shared zlib
      make -j$(nproc) && sudo make install
      
  • 配置环境变量

    • 临时设置环境变量,确保Python编译时优先找到新安装的OpenSSL:
      export PATH=/usr/local/openssl-1.1.1/bin:$PATH
      export PKG_CONFIG_PATH=/usr/local/openssl-1.1.1/lib/pkgconfig
      export LD_LIBRARY_PATH=/usr/local/openssl-1.1.1/lib
      
  • 重新编译Python3.11

    • 进入Python源码目录,重新配置并编译:
      cd Python-3.11.x
      ./configure --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1
      make -j$(nproc) && sudo make altinstall
      
  • 验证模块

    • 启动Python3.11并导入ssl模块,无报错则成功:
      python3.11 -c "import ssl; print(ssl.OPENSSL_VERSION)"
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 02:23:12