当前位置: 首页 > article >正文

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

http://www.kler.cn/a/417188.html

相关文章:

  • AI前景分析展望——GPTo1 SoraAI
  • unity中:Unity 中异步与协程结合实现线程阻塞的http数据请求
  • 模糊认知图模型、特征与推理
  • ipad项目 蓝湖宽度
  • PTA--数据结构预习报告:旅游规划问题
  • Xilinx PCIe高速接口入门实战(一)
  • kafka admin client 如何计算kafka发送速度
  • 在 Android 开发中,如何限制某个电话号码不能打电话或接听电话?
  • 【2024寒假实习面经】——CPP方向{篇Ⅰ}
  • MYSQL字段变更
  • Linux的介绍及虚拟机centOS系统的下载与应用
  • webGL入门教程_04vec3、vec4 和齐次坐标总结
  • Linux的文件系统
  • C语言 进制
  • 前端框架Vue3项目实战(基于Vue3实现一个小相册)
  • spring boot打包fat jar
  • jvm-48-java 变更导致压测应用性能下降,如何分析定位原因?
  • 洛谷 B3626 跳跃机器人 C语言 记忆化搜索
  • 宠物领养技术的SpringBoot革新
  • FFmpeg 的 codec 和 format
  • Android opengl 绘制矩形,宽高相同,不能显示为正方形,是怎么回事
  • maven <scope>compile</scope>作用
  • 关于函数式接口和编程的解析和案例实战
  • LeetCode 热题 100_轮转数组(15_189_中等_C++)(额外数组;翻转)(void函数使用return)
  • 前端开发常用快捷键
  • AtomicIntegerFieldUpdater能否降低内存