參考https://www.cnblogs.com/xshan/p/17532947.html
https://docs.python.org/3.10/using/unix.html#custom-openssl
1. 升級依賴包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc libffi-devel
2. 安裝openssl(大于1.1.1版本)
find /etc/ -name openssl.cnf -printf "%h\n"
命令行輸出 /etc/pki/tls,此為系統(tǒng)openssl.cnf所在目錄,然后開始安裝openssl
tar zxvf openssl-3.0.13.tar.gz /usr/local/bin
mkdir /usr/lib/openssl3.0.13
cd /usr/local/bin/openssl-3.0.13
./config --prefix=/usr/lib/openss3.0.13 --libdir=lib --openssldir=/usr/lib/openssl3.0.13
make -j1 depend
make -j8
make install_sw
3. 手動添加libssl.so.3庫
ldconfig -p|grep libssl.so.3 #手動安裝的情況下,未鏈接時應(yīng)該找不到這個庫
找到/etc/ld.so.conf,手動插入libssl.so.3的路徑,我這里是/usr/lib/openss3.0.13/lib64/
ldconfig
ldconfig -p|grep libssl.so.3 #檢查是否添加成功
libssl.so.3 (libc6,x86-64) => /usr/lib/openss3.0.13/lib64/libssl.so.3 #添加成功的輸出
4. 安裝python3
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz /usr/local/bin/
tar zxvf Python-3.11.4.tgz /usr/local/bin/
mkdir /usr/lib/python3.11.4
cd /usr/local/bin/Python-3.11.4
以下為重點部分?。?!
找到Python安裝夾中的Modules/Setup文件,打開,使用_ssl搜索,找到_ssl _ssl.c開頭的一行后關(guān)掉注釋,注意不要關(guān)錯,改好之后如下所示
# OpenSSL bindings
_ssl _ssl.c $(OPENSSL_INCLUDES) $(OPENSSL_LDFLAGS) $(OPENSSL_LIBS)
這一步非常重要,如果不關(guān)掉注釋,在安裝時默認(rèn)不安裝ssl,后續(xù)無法使用pip安裝包?。。?/strong>
然后繼續(xù)安裝
./configure -C --with-openssl=/usr/lib/openss3.0.13/ --with-openssl-rpath-auto --prefix=/usr/lib/python3.11.4 #編譯
make -j8 && make install #安裝
這一步若報出'cannot find -lssl'錯誤,需要手動將openssl添加到環(huán)境變量
vi ~/.bashrc
export LIBRARY_PATH=/usr/lib/openss3.0.13/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/openss3.0.13/lib64
source ~/.bashrc
之后重新編譯安裝
5. 替換python3路徑
which python3 #/bin/python3
which pip3 #/bin/pip3
mv /bin/python3 /bin/python3-bk
mv /bin/pip3 /bin/pip3-bk
ln -s /usr/lib/python3.11.4/bin/python3 /bin/python3
ln -s /usr/lib/python3.11.4/bin/pip3 /bin/pip3
python3 -V
整個安裝流程就完成了,可以使用pip3安裝包后在python中導(dǎo)入測試是否安裝成功