python3 编译指定openssl

本文详细描述了如何在Linux系统中安装Python3.8,同时处理已有的旧版OpenSSL和安装更高版本OpenSSL(1.1.1k)的过程,包括编译、配置和软链设置,以及注意事项,确保Python编译时使用自定义OpenSSL版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:

完整步骤linux下安装python环境 - 知乎

https://www.cnblogs.com/dongling/p/17496776.html

由于系统中有已经配置好的openssl(1.0.2k),只是版本比较低,编译python3.8需要openssl-1.1.1k,所以在一个linux 系统中安装两个openssl,并在python编译时指定使用的openssl.

  1. 下载openssl:/source/old/1.1.1/index.html
  2. 将压缩包放在指定的位置:然后编译。
    1. ./config --prefix=/old-openssl-version-x.x.x --openssldir=/old-openssl-version-x.x.
    2. make
    3. sudo make install
  3. 将编译好的so库,在lib64中创建软链接
    1. ln -s   /oldpath/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
    2. ln -s /oldpath/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
  4. 在编译安装的目录下的bin中,执行./openssl version 就可以看到需要的版本了,还不干扰系统自带的版本
  5. python在编译时指定openssl: ./configure --prefix=/python指定安装路径  --with-ssl=/openssl的bin路径(python 3.8中是--with-openssl)
    1. 注意,在安装时,将需要的依赖安装上就好,如果不清楚需要哪些依赖,就先安装,然后根据报错,把依赖包补全。
### Python3 编译所需依赖包 为了成功编译并安装 Python3,需要确保系统中已安装必要的开发库和工具。以下是常见的依赖项及其作用: #### 1. 开发工具链 - **build-essential**: 提供 GCC 和其他构建工具,在 Linux 上用于编译 C/C++ 程序。 - **make**: 构建自动化工具。 这些可以通过以下命令安装(适用于 Ubuntu/Debian): ```bash sudo apt-get update && sudo apt-get install build-essential make ``` 对于 CentOS/RHEL 系统,则可以运行: ```bash sudo yum groupinstall "Development Tools" ``` #### 2. 头文件支持 Python 需要访问某些系统的头文件来完成特定功能模块的编译。例如: - **zlib1g-dev/zlib-devel**: 支持压缩功能。 - **libssl-dev/openssl-devel**: SSL/TLS 协议的支持。 - **libbz2-dev/bzip2-devel**: BZIP2 压缩算法支持。 - **libreadline-dev/readline-devel**: Readline 库提供交互式输入编辑能力。 - **libsqlite3-dev/sqlite-devel**: SQLite 数据库接口支持。 - **tk-dev/tk-devel**: Tkinter GUI 工具包支持。 在 Debian/Ubuntu 下可执行如下命令安装上述依赖: ```bash sudo apt-get install zlib1g-dev libssl-dev libbz2-dev \ libreadline-dev libsqlite3-dev tk-dev ``` 而在 CentOS 中则应使用 `yum` 或者 `dnf` 来安装对应的 RPM 软件包: ```bash sudo yum install zlib-devel openssl-devel bzip2-devel readline-devel sqlite-devel tkinter ``` #### 3. 其他可能需求 有时还需要额外的一些软件包才能让完整的 Python 功能生效或者兼容更多第三方扩展: - **libffi-devel**: 对外部函数调用接口的支持[^3]。 - **ncurses-compat-libs**: 如果遇到终端显示异常的情况,尝试加入此组件修复问题。 同样地,在不同发行版本上分别通过 APT 或 YUM 获取它们即可满足基本条件。 综上所述,当准备自行编译最新稳定版 Python 解释器之前,请先确认以上列举的各项前提均已妥善安置到位[^1][^2]. ```python import sys print(sys.version_info) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野狼位位

给点辛苦费0.1元

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值