本文记录编译安装过程中遭遇的问题供大家参考
安装环境
CentOS 7.1611,环境中自带一个Python 3.7。由于该环境是作业环境无法联网,不便于安装Python虚拟环境且卸载原有的Python可能会影响原有的作业流程,本次安装将实现新老Python的共存,新版本Python通过环境变量初始化脚本切换。
依赖安装
openssl
Python 3.12要求的openssl最低版本为1.1.1,环境中自带的1.0.2k无法使用。同时为了保证不影响作业环境中原有的openssl库,新版本应独立安装于/opt目录下以免影响原有版本。
首先至openssl的GitHub仓库下载源码,在此我下载的是OpenSSL 1.1.1q。依次执行解压与编译安装命令,安装路径我设定为/opt/openssl/openssl-1-1-1q,参考编译安装命令如下,命令行选项后的“=”不可省略。
$ ./config --prefix="/opt/openssl/openssl-1-1-1q" && make -j && make install
libffi-devel
Python标准库中的部分依赖模块(例如_ctypes等)依赖于libffi,若缺失虽可正常编译Python源码,但在运行阶段会出现“No moduled named '_ctypes' ...”报错。由于本次Python安装是编译安装,因此需要安装devel包才会有相关的头文件进行正常的编译。对应的RPM包