Post

从源码编译安装Python并管理多版本的实战指南

2026-04-30

在 Linux 系统上从源码安装 Python 及多版本管理

概述

本文详细说明如何从源码编译安装 Python,并通过三种主流方式管理多个 Python 版本,适用于需要自定义环境或兼容特定依赖的场景。

安装流程概览

  1. 源码编译安装:从官方源码包编译生成 Python 可执行文件
  2. 版本管理策略
    • 手动软链接切换
    • 系统工具 update-alternatives
    • 专用工具 pyenv

核心步骤详解

一、源码编译安装

1. 准备工作

  • 下载源码包 Python-3.x.x.tgz
  • 解压:tar -xvzf Python-3.x.x.tgz

2. 安装依赖
不同发行版需安装对应开发包:

# Ubuntu/Debian
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libssl-dev

# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install zlib-devel ncurses-devel openssl-devel

3. 配置与编译

cd Python-3.x.x
./configure --enable-optimizations  # 默认安装
# 或自定义路径
./configure --prefix=/opt/python3.x --with-openssl=/usr/local/ssl
make -j $(nproc)  # 并行编译
sudo make altinstall  # 避免覆盖系统默认版本

4. 验证安装

python3.x --version

二、多版本管理方案

方案 1:手动软链接

sudo rm /usr/bin/python   # 移除现有软链接
sudo ln -s /usr/bin/python3.9 /usr/bin/python  # 指向目标版本

方案 2:update-alternatives

# 添加新版本到选项
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2

# 切换版本
sudo update-alternatives --config python

方案 3:pyenv(推荐)

  1. 安装 pyenv:
curl https://pyenv.run | bash
  1. 配置环境变量(编辑 ~/.bashrc~/.zshrc):
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
  1. 安装并切换版本:
pyenv install 3.9.10
pyenv global 3.9.10  # 全局版本
pyenv local 3.8.12   # 项目目录专用版本

pip 包管理注意事项

  • 为不同版本安装对应 pip:
python3.x -m ensurepip --upgrade
python3.x -m pip install --upgrade pip
  • 使用镜像源加速安装(示例):
python3.x -m pip install package_name -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

适用场景边界

  • 源码编译:适用于需要自定义编译参数或系统无预编译包的场景
  • pyenv:适合开发环境多版本切换,但需注意与系统自带版本的兼容性
  • update-alternatives:适合系统级管理,但操作相对繁琐

总结

通过源码编译安装 Python 并结合版本管理工具,可灵活应对不同项目需求。推荐优先使用 pyenv 实现隔离化管理,避免系统环境污染。实际部署时需根据发行版特性调整依赖安装步骤。