温馨提示×

怎么在Debian编译Python源码

小樊
70
2026-07-17 11:13:05
栏目: 编程语言

在 Debian 系统上编译 Python 源码一般步骤如下(以常见流程为例):


一、安装编译依赖

首先更新软件包索引,并安装编译 Python 所需的基本依赖:

sudo apt update
sudo apt install -y \
    build-essential \
    libssl-dev \
    zlib1g-dev \
    libncurses5-dev \
    libsqlite3-dev \
    libreadline-dev \
    libbz2-dev \
    libffi-dev \
    liblzma-dev \
    tk-dev

如果是编译 Python 3.11+,通常还需要:

sudo apt install -y libgdbm-dev

二、下载 Python 源码

去 Python 官方下载页面获取源码:

方式一:使用 wget(示例为 3.12.1)

wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz

方式二:从 GitHub(适合开发版本)

git clone https://github.com/python/cpython.git
cd cpython

三、解压并进入目录

tar -xf Python-3.12.1.tgz
cd Python-3.12.1

四、配置编译选项

1️⃣ 常见配置方式(推荐)

./configure --enable-optimizations

说明:

  • --enable-optimizations:开启 PGO/LTO,编译出的 Python 更快(但编译时间更长)

2️⃣ 自定义安装路径(常见于多版本共存)

./configure --prefix=/usr/local/python3.12 --enable-optimizations

五、编译

make -j$(nproc)

-j$(nproc) 表示使用所有 CPU 核心并行编译


六、安装(可选)

✅ 普通安装

sudo make install

✅ 或只安装到指定目录

sudo make altinstall

强烈建议用 altinstall,避免覆盖系统自带的 /usr/bin/python3


七、验证安装

python3.12 --version

或(自定义 prefix):

/usr/local/python3.12/bin/python3.12 --version

八、常见问题排查

1️⃣ ModuleNotFoundError: _lzma

未安装 lzma 开发库:

sudo apt install -y liblzma-dev

2️⃣ pip 不存在

python3.12 -m ensurepip --upgrade

3️⃣ SSL 相关错误

sudo apt install -y libssl-dev

九、快速总结(一条命令流)

sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev \
  libncurses5-dev libsqlite3-dev libreadline-dev libbz2-dev \
  libffi-dev liblzma-dev tk-dev

wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz
tar -xf Python-3.12.1.tgz
cd Python-3.12.1
./configure --enable-optimizations
make -j$(nproc)
sudo make altinstall

如果你需要:

  • ✅ 编译 指定版本(如 3.8 / 3.10)
  • ✅ 编译成 Docker / 交叉编译
  • ✅ 只给当前用户安装(不 sudo)

可以告诉我你的具体需求,我可以给你更精确的方案。

0 踩