服务器Centos7部署Python3的完整安装过程(3.10.1)

网络 z197 1317次浏览 已收录 用手机观看

最近,老马要用到几个python3的新包和模块。之前服务器上安装的旧版Python3.6,没有这些模块。

于是,就想着把centon7服务器上,安装个新版python3.10.1。

原以为10分钟就能搞完的,没想到,总是遇到莫名其妙的问题,一下子折腾了2小时。。。

这里记录下我自己的python完整部署流程。

提前先看下自己服务器上都有哪些版本,是不是都正常。如果异常,就先卸载掉python3:

https://z197.com/blog/view-all-python-versions-on-centos.html

1. 安装开发工具和依赖项。

# 安装 "Development tools" 软件组,其中包含编译和开发工具
yum -y groupinstall "Development tools"

# 安装 Python 编译和运行所需的开发库和依赖项
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

# 安装 libffi 开发库和 zlib1g-dev 包,它们是 Python 编译和运行的额外依赖项
yum install -y libffi-devel zlib1g-dev

# 安装所有以 "zlib" 开头的软件包,以满足可能的 zlib 依赖项
yum install zlib* -y

 2. 下载 Python 3.10 的源代码。

wget https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tar.xz

官网地址、其他版本:https://www.python.org/ftp/python

3. 解压 Python 源代码文件。

tar -xvJf Python-3.10.1.tar.xz

4. 创建 Python 3.10 的安装目录。

mkdir /usr/local/python3

5. 升级 OpenSSL 版本。

# 查看当前 OpenSSL 版本
openssl version

# 下载最新的 OpenSSL
wget https://www.openssl.org/source/openssl-1.1.1m.tar.gz --no-check-certificate

# 安装 perl
yum -y install perl

# 解压 OpenSSL 源代码文件
tar -zxvf openssl-1.1.1m.tar.gz

# 进入解压后的 OpenSSL 目录
cd openssl-1.1.1m

# 配置 OpenSSL 的安装路径
./config --prefix=/usr/local/openssl

# 编译并安装 OpenSSL
make && make install

# 备份系统中的旧 OpenSSL 可执行文件
mv /usr/bin/openssl /usr/bin/openssl.bak

# 创建软链接以关联新安装的 OpenSSL 可执行文件
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

# 向动态链接库配置文件添加新的 OpenSSL 库路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

# 刷新动态链接库缓存,使新配置生效
ldconfig -v

6. 升级 GCC 版本。

# 安装 CentOS 软件集和编译工具链
yum install -y centos-release-scl
yum install -y devtoolset-8-toolchain
# 启用新的工具链
scl enable devtoolset-8 bash

7. 编译并安装 Python 3.10。

cd Python-3.10.1

# 运行 Python 配置脚本,配置编译参数
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --enable-shared --enable-optimizations

# 编译 Python 3.10 源代码
# make 命令会根据配置参数编译源代码并生成可执行文件
make

# 安装 Python 3.10
# make install 会将编译生成的 Python 可执行文件、库文件和其他必要文件安装到指定目录
make install

编译安装,速度慢,要等一会。

安装完成后:

8. 创建软链接以将 Python 3.10 与 python3 和 pip3 关联。

# 备份系统默认的 /usr/bin/python 可执行文件
mv /usr/bin/python /usr/bin/python.bak

# 创建软链接,将 /usr/local/python3/bin/python3 关联到 /usr/bin/python3,使 python3 命令可用
ln -s /usr/local/python3/bin/python3 /usr/bin/python3

# 备份系统默认的 /usr/bin/pip 可执行文件
mv /usr/bin/pip /usr/bin/pip.bak

# 创建软链接,将 /usr/local/python3/bin/pip3 关联到 /usr/bin/pip3,使 pip3 命令可用
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

9. 验证 Python 和 pip 版本。

# 向 /etc/ld.so.conf 文件中添加新的库路径
echo "/usr/local/python3/lib" >> /etc/ld.so.conf

# 使用 ldconfig 命令刷新动态链接库缓存,以使新配置生效
ldconfig -v

# 验证 Python 3.10 版本
python3 -V

# 验证 pip3 版本
pip3 -V

如果还是旧版本,8成是软链接没生效,ldconfig -v,刷新几次即可

如果还不行,就是软链接创建失败,删除旧的python3文件再试

删除现有的 /usr/bin/python3 文件:sudo rm /usr/bin/python3

创建新的软链接:ln -s /usr/local/python3/bin/python3 /usr/bin/python3

验证结果如下,即成功在centos服务器上部署了python 3.10.1

补充:pip的阿里云源

# 在当前用户目录下创建 .pip 文件夹
mkdir ~/.pip
# 创建 pip 配置文件
vi ~/.pip/pip.conf
# 编辑文件内容如下,指定使用阿里云的源
# [global]
# trusted-host=mirrors.aliyun.com
# index-url=http://mirrors.aliyun.com/pypi/simple/