跳转至

Python本地编译升级

本文以RedHat Linux平台编译Python3.9.5为例,其它平台和版本操作方式与之类似。

1 检查编译环境

首先检查编译环境,此处以Fedora为例:

Bash
gcc --version  # 检查gcc编译器
sudo yum -y install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel libffi-devel libffi-dev  # 检查&安装必要工具包

2 获取Python源码

获取python3源码,此处以python3.9.5为例:

  1. 官网地址:https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
  2. 淘宝镜像:https://npm.taobao.org/mirrors/python/3.9.5/Python-3.9.5.tgz
Bash
wget https://npm.taobao.org/mirrors/python/3.9.5/Python-3.9.5.tgz

3 解压与编译

解压编译python3:

Bash
# 解压
tar -zxvf Python-3.9.5.tgz

# 进入解压后目录
cd Python-3.9.5

# 创建放置编译好的python的目录
sudo mkdir /opt/Python3.9.5

# 准备编译
./configure --prefix=/opt/Python3.9.5

# 编译源码
sudo make && sudo make install

4 检查是否编译成功

检查已编译的python环境

Bash
whereis python3

典型的输出如下:

Bash
python3: /usr/bin/python3 /usr/bin/python3.9 /usr/lib/python3.9 /usr/lib64/python3.9 /usr/include/python3.9 /opt/Python3.9.5/bin/python3.9 /opt/Python3.9.5/bin/python3.9-config /opt/Python3.9.5/bin/python3 /usr/share/man/man1/python3.1.gz

5 创建符号链接

创建符号链接到系统可执行文件目录(可选,便于快速启用python环境):

Bash
1
2
3
4
# python3.9.5
sudo ln -s /opt/Python3.9.5/bin/python3 /usr/bin/python395
# pip(也可以先使用whereis pip定位)
sudo ln -s /opt/Python3.9.5/bin/pip3.9 /usr/bin/pip395

注意:如果需要替换系统的默认python3环境,建议执行先备份再创建符号链接:

Bash
1
2
3
4
5
sudo mv /usr/bin/python3 /usr/bin/python3_bak
sudo ln -s /opt/Python3.9.5/bin/python3 /usr/bin/python3

sudo mv /usr/bin/pip /usr/bin/pip_bak
sudo ln -s /opt/Python3.9.5/bin/pip3.9 /usr/bin/pip