yocto 如何添加python module

  • Post author:
  • Post category:python




yocto 如何添加python module

最近在使用阿里云的图像识别SDK,在ubuntu主机上使用pip install alibabacloud_imagerecog20190930 安装modules以后就可以运行demo程序了,于是打算将SDK移植到嵌入式板子上面,然后在板子上跑一下demo。但是发现好像不是想象的这么简单,在板子上执行

pip install alibabacloud_imagerecog20190930 -i https://pypi.tuna.tsinghua.edu.cn/simple

执行报错:

在这里插入图片描述
需要升级pip版本:

pip3 install -U pip  -i http://pypi.douban.com/simple  --trusted-host  pypi.douban.com

继续尝试pip install

pip3 install alibabacloud_imagerecog20190930  -i http://pypi.douban.com/simple  --trusted-host pypi.douban.com

还是报错,可以看到这次其实已经下载完SDK了,但是发现在build 依赖的时候提示找不到工具链,因为嵌入式开发板上并没有工具链,所以最后无法通过pip install来安装了。

在这里插入图片描述
所以下面记录一下yocto集成python modules的详细过程,供大家参考

  1. 主机PC上安装pipoe
pip3 install pipoe
  1. 通过pipoe来自动查找modules的依赖并生成bb file
pipoe -p alibabacloud_imagerecog20190930 --python python3

经过这一步pipoe会自动生成如下文件:

在这里插入图片描述
其中所有.bb文件均是依赖的modules, python3_versions.inc是指定每个modules当前的版本号

3. 添加生成的文件到yocto编译环境

这里面主要有三步:

– 将所有的.bb文件存放到recipes-devtool/python/路径下

在这里插入图片描述

– 将python3_versions.inc存放到发行版的配置文件夹路径并在发行版的配置中添加

如下图所示,我在openstlinux-eglfs.conf里面使用 require include/python3-versions.inc
在这里插入图片描述

– 将添加的modules放到任意一个packagegroup里面

如下图所示我把刚才那些所有的依赖modules都添加到packagegroup-framework-tools.bb这个packagegroup里面了,请确保你添加的packagegroup一定会被编译进根文件系统里面![在这里插入图片描述](https://img-blog.csdnimg.cn/d45e449d1d2848c1879e73acdbb3697f.png

  1. 编译更新根文件系统

    最后只需要重新编译根文件系统即可,我们看下重新编译的镜像里面包含了我们添加的这些modules,实际存放的路径是在/usr/lib/python3.8/site-packages下面

    在这里插入图片描述
    DONE



版权声明:本文为qq_24622489原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。