
OpenEuler 22.03 升级Python3.10.20教程
环境信息
| 项目 | 版本 |
|---|---|
| 操作系统 | openEuler 22.03 LTS SP4 |
| GCC | 10.3.1 |
| OpenSSL | 1.1.1wa |
| 目标 Python | 3.10.20 |
一、安装编译依赖
# 更新软件包
yum update -y
# 安装编译 Python 所需的依赖包
yum install -y \
gcc \
gcc-c++ \
make \
zlib-devel \
libffi-devel \
openssl-devel \
readline-devel \
sqlite-devel \
ncurses-devel \
gdbm-devel \
xz-devel \
tk-devel \
uuid-devel \
libcap-devel \
ccache \
patch说明:OpenSSL 1.1.1wa 版本满足 Python 3.10 编译要求,无需额外升级 OpenSSL。
二、下载 Python 源码
# 创建编译目录
mkdir -p /opt/software/python
cd /opt/software/python
# 下载 Python 3.10.20 源码(南京大学镜像)
wget https://mirrors.nju.edu.cn/python/3.10.20/Python-3.10.20.tgz
# 解压
tar -xf Python-3.10.20.tgz
cd Python-3.10.20备选下载地址(如果南京大学镜像不可用):
-华为云:https://mirrors.huaweicloud.com/python/3.10.20/Python-3.10.20.tgz
- 清华大学:
https://mirrors.tuna.tsinghua.edu.cn/python/3.10.20/Python-3.10.20.tgz
三、编译配置
# 创建安装目录
mkdir -p /home/application/python3.10.20
# 配置编译选项
./configure \
--prefix=/home/application/python3.10.20 \
--with-ensurepip=install \
--enable-optimizations关键参数说明
| 参数 | 说明 |
|---|---|
--prefix | Python 安装路径 |
--enable-optimizations | 启用编译优化(会延长编译时间) |
--with-ensurepip=install | 确保同时安装上pip包管理器 |
四、编译并安装
# 编译(根据机器配置,-j 后面的数字为 CPU 核心数)
make -j$(nproc)
# 安装
make install注意:--enable-optimizations 会显著增加编译时间(约 10-30 分钟),但能提升 Python 约 10-20% 的运行性能。如需快速安装,可去掉此参数。五、配置环境变量
5.1 配置环境变量
##临时生效
export PATH=/home/application/python3.10.20/bin:$PATH##永久生效
echo "export PATH=/home/application/python3.10.20/bin:$PATH" >> /etc/profile
source /etc/profile5.2 验证安装
# 检查 Python 版本
python3 --version
# 输出:Python 3.10.20
# 检查 pip 版本
pip --version
# 输出:pip 24.3.1 from /usr/local/python3.10.20/lib/python3.10/site-packages/pip (python 3.10)
六、配置 pip 国内镜像(可选)
# 创建 pip 配置文件
mkdir -p ~/.pip
cat > ~/.pip/pip.conf << 'EOF'
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
EOF参考链接
- Python 官方源码:https://www.python.org/downloads/source/
- 南京大学开源镜像站:https://mirrors.nju.edu.cn/
- openEuler 官方文档:https://docs.openeuler.org/
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟