Debian 11 arm64 编译安装 Python 3.12.4

教程

编译环境

操作系统:Debian 11 arm64

Python 版本:3.12.4

Debian 12、Ubuntu 系统同理,其他 Python 版本同理。

以下是详细编译步骤。

修改 sources.list

编辑 /etc/apt/sources.list 文件

nano /etc/apt/sources.list

将每个 deb-src 前的注释去掉,并保存。

安装依赖项

更新软件包索引

sudo apt-get update

安装依赖项

sudo apt-get -y build-dep python3
sudo apt-get -y install build-essential gdb lcov pkg-config \
libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev \
libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev \
lzma lzma-dev tk-dev uuid-dev zlib1g-dev libmpdec-dev

下载 Python 源码

从 Python 官网下载:

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

如果机器在国内,建议使用阿里云镜像加速下载:

wget https://mirrors.aliyun.com/python-release/source/Python-3.12.4.tgz

解压源码,并进入源码目录。

tar -zxvf Python-3.12.4.tgz
cd Python-3.12.4

生成 Makefile

./configure \
--enable-optimizations \
--with-system-ffi \
--with-ssl \
--enable-ipv6 \
--enable-shared CFLAGS=-fPIC \
--prefix=/usr/local/python3.12.4 \
ac_cv_file__dev_ptmx=no \
ac_cv_file__dev_ptc=no

编译

使用 -j 参数加速编译,nproc 为 CPU 核心数。

make -j$(nproc)

安装

本机安装

  1. 安装 Python
make install
  1. 安装动态链接库
cp /usr/local/python3.12.4/lib/libpython3* /usr/lib/aarch64-linux-gnu/
# 如果是 amd64 架构,目标路径则为 /usr/lib/x86_64-linux-gnu/

在其他设备上安装

(CPU 架构、Debian 版本必须相同,否则会出现异常)

  1. 本机执行:
  • 安装 Python 到指定目录
make install
  • 打包安装目录
tar -zcvf python3.12.4-linux-arm64.tar.gz /usr/local/python3.12.4/* 

然后把压缩包传输到其他设备上。

  1. 在其他设备上执行:
  • 解压
tar -zxvf python3.12.4-linux-arm64.tar.gz -C /
  • 安装动态链接库
cp /usr/local/python3.12.4/lib/libpython3* /usr/lib/aarch64-linux-gnu/
# 如果是 amd64 架构,目标路径则为 /usr/lib/x86_64-linux-gnu/

设置环境变量

编辑 profile 配置文件:

nano /etc/profile

在末尾加入以下内容,并保存。

export PATH=/usr/local/python3.12.4/bin:$PATH

使环境变量生效:

source /etc/profile

卸载

rm -rf /usr/local/python3.12.4
rm -rf /usr/lib/aarch64-linux-gnu/libpython3*
# 如果是 amd64 架构,则为 rm -rf /usr/lib/x86_64-linux-gnu/libpython3*

本文作者:Tony

本文链接: https://blog.iamsjy.com/2024/07/27/compile-and-install-python-3.12.4-on-debian-11-arm64/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

评论