740 字
4 分钟
CentOS 下 Python 3.10 安装指南:OpenSSL 1.1.1 详细配置
2024-07-28

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

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

openssl version
yum 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

安装依赖

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y perl-CPAN
perl -MCPAN -e shell
sudo
cpan[1]> install IPC/Cmd.pm
exit

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

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

环境变量

vim /etc/ld.so.conf

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

/usr/local/openssl/lib

保存:
vim : q

使之生效:

ldconfig -v

验证版本:

openssl version

2、CentOS安装 Python 3.10
基础环境配置升级

sudo yum -y update
sudo yum -y groupinstall “Development tools”
sudo yum -y install openssl-devel libffi-devel bzip2-devel
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
yum install -y libffi-devel zlib1g-dev
yum install zlib* -y

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

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

配置编译并且安装,创建软连接,参考

./configure --enable-optimizations --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto
./configure --with-openssl=/usr/local/openssl-1.1.1 --with-openssl-rpath=auto
make clean
make -j && make install
ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip3
ln -sf /usr/local/python3/bin/python3 /usr/bin/python3

验证

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

创建虚拟环境(推荐)

为了更好地管理你的 Python 项目,建议使用虚拟环境。可以使用 venv 模块创建一个虚拟环境:

python3 -m venv myenv

启动虚拟环境:

source myenv/bin/activate

在虚拟环境中,你可以安装所需的包,而不会影响系统全局的 Python 包。

验证安装的包

你可以通过简单的 Python 脚本来验证安装的包是否能正常使用。例如,创建一个 test.py 文件:

import requests
import numpy as np
response = requests.get("https://api.github.com")
print("GitHub API status:", response.status_code)
array = np.array([1, 2, 3])
print("NumPy array:", array)

然后运行这个脚本:

python3 test.py

如果一切正常,你将看到 GitHub API 的状态码和 NumPy 数组的输出

补充:
更新 yum 配置(如果需要)
默认的 CentOS 7 没有安装 pip,先添加 epel 扩展源:

sudo yum -y install epel-release
sudo yum install python-pip

然后更改 yum 配置,因为其要用到 python2 才能执行,否则会导致 yum 不能正常使用:

sudo vi /usr/bin/yum

将第一行修改为:

#!/usr/bin/python2

同样修改另一个文件:

sudo vi /usr/libexec/urlgrabber-ext-down

将第一行修改为:

#!/usr/bin/python2

以上就是在 CentOS 上安装 OpenSSL 1.1.1 和 Python 3.10 的完整教程,包括解决 pip SSL 问题的步骤

在大多数情况下,如果您安装了 Python 3,可以使用 pip3 来代替 pip:

pip3 install requests
sudo yum install python3-pip
/usr/local/bin/python3.10 -m pip install --upgrade pip
pip --version
CentOS 下 Python 3.10 安装指南:OpenSSL 1.1.1 详细配置
https://blog.wlens.top/posts/centos安装python3/
作者
Lao Wang
发布于
2024-07-28
许可协议
CC BY-NC-SA 4.0