python 交叉编译_buildroot中python外置库的添加方法

本文介绍了在嵌入式系统中如何处理Python第三方库的移植问题,特别是当没有本地编译器时。作者分享了使用buildroot框架生成根文件系统,并通过scanpypi动态添加Python库的方法。文章强调了在嵌入式平台安装Python库与PC环境的不同,推荐了直接在根文件系统编译的方式,并详细阐述了配置过程。
AI助手已提取文章相关产品:

本文作者是北京信息科技大学2019级硕士研究生肖川,日常科研工作中,对操作系统移植过程中遇到的问题进行了总结。

b1fdd360289d8458125f01e4ecec5f35.png

摘要:

在嵌入式系统中通常没有本地编译器,因此嵌入式系统运行需要的软件都是在编译前定制好的。对于不依赖于具体平台的运行语言来说,可以不用考虑平台的差异性,例如python。对于纯python程序可以不用考虑平台的差异,但是如果想要加速编译后程序的运行速度,则需要使用与平台关联性强的语言去编写部分代码来提高整体速度。这种方法通常被应用于python的第三方库的开发。但是在嵌入式平台上安装python的第三方库与PC环境中安装不同,通过常有两种方法,一、第三方库需要与根文件系统一起编译;二在PC环境中交叉编译后再安装到嵌入式系统上。但是第二种方法并不稳定,如果不熟悉系统环境,会出现很多意外的问题,因此通常会选用第一种方法来实现。buildroot是一种嵌入式系统生成框架,该框架集成多种编译工具,可以生成uboot、linux内核、根文件系统,本文用到了buildroot生成根文件系统的功能。

正文:

安装必要脚本

在 buildroot 中已经内置了部分 python 库,但是实际运用时用的到库 buildroot 中可能不存在,因此需要向 buildroot 中添加要安装的库。

使用 scanpypi 可以动态添加 python 库

https://github.com/ishahak/buildroot_scanpypi3

按照文档中的使用说明,python 库会被添加到该文件所在的 package 文件下,但 buildroot 实际使用的位置在 buildroot 根文件下的 package 文件夹下。因此可以将新增的库移动到 buildroot 下的 package 文件夹,也可以不移动。

修改配置文件

python 库下载完成后,使用 make menuconfig 还看不到新安装的库,需要修改 package 的配置文件。

# 位置

/package/Config.in

# 例如添加 websocker

# 在 python 扩展包下添加 websocker 的配置文件

menu "External python modules"

+    source"package/python-websocket-server/Config.in"

保存之后,在 menconfig 中可以找到新增的 python 库,如图1所示。

209d007843568347edbddb602fb13c82.png

图1 menconfig展示

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值