1、Ubuntu安装OpenSSL1.1.1(前置环境)
编译安装Python3.10时需要openssl1.1.1

查看当前版本 & 删除openssl1.0

openssl version
apt remove openssl

切换目录,下载安装包,解压并进入目录

cd /opt
wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz --no-check-certificate
tar -zxf openssl-1.1.1n.tar.gz
cd openssl-1.1.1n

安装依赖

sudo apt update
sudo apt install -y g++
sudo apt install -y libpcre3 libpcre3-dev
sudo apt install -y zlib1g zlib1g-dev
sudo apt install -y perl
sudo apt install -y libipc-cmd-perl

Ubuntu 上安装 make

sudo apt update
sudo apt install make

配置,编译,安装,软连接

./config --prefix=/usr/local/openssl
make -j 2
sudo make install
sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

环境变量

sudo vim /etc/ld.so.conf

在文件末尾添加一行代码:

/usr/local/openssl/lib

保存并退出 Vim(按下 Esc 键,输入 :wq,然后按 Enter)。

使之生效:

sudo ldconfig -v

验证版本:

openssl version

2、Ubuntu安装 Python 3.10

更新系统和安装基本开发工具

sudo apt update
sudo apt install -y build-essential

安装 Python 所需的依赖项:

sudo apt install -y libssl-dev libffi-dev libbz2-dev libncurses5-dev \
libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libc6-dev libdb-dev \
libpcap-dev xz-utils zlib1g-dev

切换到 /opt 目录,下载 Python 3.10 安装包并解压:

cd /opt
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
tar xvzf Python-3.10.4.tgz
cd Python-3.10.4

配置、编译并安装 Python:

./configure --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto
make -j && sudo make install

创建 Python 3 和 pip3 的软链接:

sudo ln -sf /usr/local/bin/python3 /usr/bin/python3
sudo ln -sf /usr/local/bin/pip3 /usr/bin/pip3

验证安装

python3 --version

安装常用的 Python 包

你可以安装一些常用的 Python 包,如 requests、numpy 等:

pip3 install requests numpy

如果在安装 pip 包时遇到 SSL 错误,请重新配置并编译 Python:

cd /opt/Python-3.10.4
sudo make clean  # 清理之前的编译
./configure --with-openssl=/usr/local/openssl
make -j 2
sudo make install

验证 SSL 模块

重新编译后,验证 Python 是否正确加载了 SSL 模块

python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"

如果输出类似 OpenSSL 1.1.1n 15 Mar 2022,说明 SSL 模块已正确加载。

再次尝试安装 pip 包
尝试再次安装 requests 和 numpy:

pip3 install requests numpy
Last modification:August 1st, 2024 at 04:39 pm