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

ops/2024/11/28 10:25:56/

设置交叉编译环境

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

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

http://www.ppmy.cn/ops/137323.html

相关文章

数据结构--B树

B树 B树原理实现 B树B*树 B树系列包括B树(有些地方写成B-树,注意不要读成B减树,中间的 ‘-’ 是杠的意思,不是减号)、B树、B 树,其中B树、B树是B树的改进优化,它们最常见的应用就是用于做索引。…

Kubernetes 分布式存储后端:指南

在 Kubernetes 中实现分布式存储后端对于管理跨集群的持久数据、确保高可用性、可扩展性和可靠性至关重要。在 Kubernetes 环境中,应用程序通常被容器化并跨多个节点部署。虽然 Kubernetes 可以有效处理无状态应用程序,但有状态应用程序需要持久存储来维…

养宠宠物空气净化器哪个好?实测热销品牌安德迈、希喂、小米

最近啊,猫咪们开始换毛了,不少铲屎官们正打算买个养宠宠物空气净化器呢,但面对众多选择,是不是有点儿犯愁不知道该咋挑?别担心,作为养猫多年的老手,我今天就来实测三款特别火的养宠宠物空气净化…

裸金属服务器和专属主机的区别是什么?

在当今互联网时代,人们越来越重视服务器的使用。裸金属服务器和专属主机是两种常见的服务器形式。裸金属服务器和云主机有什么区别呢? 一、定义和概念 裸金属服务器和云主机都是租用物理服务器的一种方式。 裸金属服务器是指没有安装虚拟化技术的物理…

WordCloud参数的用法:

-------------词云图集合------------- 用WordcloudPyQt5写个词云图生成器1.0 WordCloud去掉停用词(fit_wordsgenerate)的2种用法 通过词频来绘制词云图(jiebaWordCloud) Python教程95:去掉停用词词频统计jieba.toke…

HTTP有哪些风险?是怎么解决的?

一、风险 HTTP是通过明文传输的,存在窃听风险、篡改风险以及冒充风险。 二、如何解决 HTTPS在HTTP的下层加了一个SSL/TLS层,保证了安全,通过混合加密解决窃听风险、数字签名解决篡改风险、数字证书解决冒充风险。 (1&#xff0…

Ubuntu20.04运行msckf_vio

文章目录 环境配置修改编译项目运行MSCKF_VIO运行 Launch 文件运行 rviz播放 ROSBAG 数据集 运行结果修改mskcf 保存轨迹EVO轨迹评价EVO轨迹评估流程实操先把euroc的真值转换为tum,保存为data.tum正式评估 报错1问题描述 报错2问题描述问题分析问题解决 参考 环境配…

Error executing a python function in exec_func_python() autogenerated

具体错误 ERROR: docker-ce-20.10.25-cegit791d8ab87747169b4cbfcdf2fd57c81952bae6d5-r0 do_unpack: Error executing a python function in exec_func_python() autogenerated:The stack trace of python calls that resulted in this exception/failure was: File: exec_fu…