Python3交叉编译arm-linux放入设备中运行方式

设置交叉编译环境

设置交叉编译工具链环境变量,告诉编译系统使用交叉编译工具链进行编译,而不是本地编译器。

复制代码
export CROSS_COMPILE=aarch64-linux-gnu-
export ARCH=arm64

CROSS_COMPILE 指定交叉编译工具链的前缀,aarch64-linux-gnu- 表示你使用的交叉编译工具链。

ARCH 设置目标架构,arm64 适用于 64 位 ARM 架构(你可以根据需要调整为其他架构,如 arm 适用于 32 位 ARM)。

下载并配置 Python 源代码

下载 Python 源代码并解压:

复制代码
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
tar -xzvf Python-3.8.5.tgz
cd Python-3.8.5

配置编译选项

配置编译选项,确保编译器使用交叉编译工具链。你需要告诉 configure 脚本使用交叉编译工具链,并指定目标系统。

复制代码
./configure --prefix=/usr/local --host=aarch64-linux-gnu --build=x86_64-linux-gnu 

或者 (根据错误提示增加参数)

复制代码
/configure --prefix=/root/app_python3.8 --host=aarch64-linux-gnu --build=x86_64-linux-gnu --without-ensurepip --disable-ipv6 ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no

--prefix=/root/app_python3.8 设置安装路径。

--host=aarch64-linux-gnu 告诉配置脚本目标架构为 ARM 64 位。

--build=x86_64-linux-gnu 表示当前的开发主机架构(如果你在 x86 架构的开发机上编译)。

编译 Python

在交叉编译工具链环境下,运行 make 命令进行编译。

复制代码
make

编译过程会生成适用于目标设备的 Python 二进制文件。

安装 Python

在开发机上编译完成后,使用 make install 将文件安装到本地目录。

复制代码
make install

此时,Python 将被安装到本地的 /usr/local 目录下。

准备并传输文件到目标设备

将编译后的文件传输到目标设备。你可以通过 scp、rsync 等工具将编译后的二进制文件、库文件和头文件传输到目标设备的指定目录。

例如:

复制代码
scp -r /root/app_python3.8/* root@your_device:/usr/local/
另外一个中文件拷贝方式:
rsync -av --info=progress2 ./app_python3.8/ /mnt/nfs_wang/pyt/

配置目标设备

确保目标设备的环境变量中包含 /usr/local/bin 路径,这样 Python 命令就可以在设备上直接使用。

可以编辑 /etc/profile 或 ~/.bashrc 文件,添加以下内容:

复制代码
export PATH=/usr/local/bin:$PATH

然后,执行以下命令应用更改:

复制代码
source ~/.bashrc

验证安装

在目标设备上,检查 Python 是否成功安装:

复制代码
python3 --version
相关推荐
物联网软硬件开发-轨物科技3 小时前
【技术白皮书】光伏清检一体化机器人系统解决方案技术白皮书
大数据·运维·网络·人工智能·机器人
Escalating_xu3 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
海宇数据3 小时前
零信任架构实战:基于海宇网上踪迹欺诈行为识别构建自动化信贷资信评估网关
运维·人工智能·架构·自动化
忆挽篱笙歌4 小时前
环境变量,本地变量
linux·运维·服务器
码间留白4 小时前
手把手把 GitHub 推上阿里云 ECS:Actions CI/CD 全链路避坑实录(折腾好几天,到 2 分钟见绿)
运维·阿里云·ci/cd·docker·devops·github actions
吹什么轩6 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php
殷忆枫6 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
第404号工位6 小时前
手机到底有没有偷听我们?我抓包了 72 小时,抓到了真凶
linux·人工智能·架构
老李IT笔记6 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
字节跳动开源6 小时前
ByteDance 2026 上半年 Linux 内核贡献回顾
linux·开源