Python3.7+编译安装openssl模块
python3.9编译ssl模块踩坑记录
问题描述
python3.9安装完毕时发现未编译ssl模块导致pip无法使用
软件包:https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
系统:centos7.4
编译ssl模块
在python3.7+的版本之后configure自检文件的参数已经不支持“--with-ssl”,所以按照网络上的大部分说法加上参数的问题应该是只适用于低于此版本前的源码包。
支持此版本的ssl模块应该是
--with-openssl=/usr/local/openssl
升级openssl版本
由于python3.7+要求本机的openssl版本高于1.1版本
所以,根据一下命令编译安装新版本的openssl
#下载源码包
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
#解压
tar -zxvf openssl-1.1.1g.tar.gz
#进入文件夹
cd openssl-1.1.1g/
#配置指定安装目录
./config --prefix=/usr/local/openssl
#编译安装
make && make install
备份旧版本的openssl
#备份
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
#新建连接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
#库类文件
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
#重载配置
ldconfig
重新编译python
进入python源码文件夹,重新编译
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --enable-shared
make && make install
python软连接
已经建立过可忽略
ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
echo "/usr/local/python3/lib" >/etc/ld.so.conf.d/python3.conf
ldconfig
总结
学会留意configure,cmake的报错信息。
多反思,多记录,多学习。发现问题,解决问题,总结经验。
评论已关闭