Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用yocto编写python应用程序的配方

我有一个简单的python应用程序,它可以:

  1. 从全球定位系统获取信息
  2. 解析信息
  3. 将其存储在InfluxDB中

一揽子要求:

代码语言:javascript
运行
AI代码解释
复制
certifi==2018.4.16
chardet==3.0.4
idna==2.6 
influxdb==5.0.0
pynmea2==1.12.0 
pyserial==3.4
python-dateutil==2.7.3
pytz==2018.4
requests==2.18.4
six==1.11.0
urllib3==1.22          

以上内容是通过以下方法生成的:

pip3 install pynmea2 pyserial influxdb

OpenEmbedded Layers Index中,我已经找到了Python3pyserial包。这意味着我可能需要做pip3 install pynmea2 influxdb

如何在编写我的应用程序的配方时考虑到上面提到的pip依赖关系?

对于编写python应用程序的配方,我没有找到任何教程。(相反,Node应用程序确实对yocto wiki页面有一些指导。

在检查meta-python层中的一些菜谱时,我发现了一些.inc文件,但不确定如何处理。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-04 01:16:58

为不可用的python应用程序创建累赘

由于influxdb-pythonpynmea2不能作为标准python菜谱使用,所以我首先使用devtool为它们创建了菜谱。

步骤

  1. 使用devtool添加influxdb-python devtool add influxdb-python https://github.com/influxdata/influxdb-python/archive/v5.2.0.tar.gz
  2. 使用devtool添加pynmea2 devtool add pynmea2 https://github.com/Knio/pynmea2/archive/1.7.1.tar.gz

上面提到的步骤在您的workspace中创建一个文件夹$BUILD_DIR,并为repos创建自动生成的菜谱。

  1. 编辑菜谱 devtool edit-recipe influxdb-python
  2. 相应地向菜谱中添加或检查DEPEND_${PN}RDEPENDS_${PN}。我将所有requirements.txt for influxdb-python添加到RDEPENDS_${PN} viz中。 RDEPEND_${PN} += "${PYTHON_PN}-modules ${PYTHON_PN}-requests ${PYTHON_PN}-dateutil ${PYTHON_PN}-pytz ${PYTHON_PN}-six" 注意::我没有添加pandasnumpy,因为它们与我的应用程序无关。
  3. 我还添加了DEPENDS_${PN} = "${PYTHON_PN}-modules

注意到:对pynmea2执行同样的操作,但是由于它没有任何requirements.txt,所以我添加了RDEPENDS_${PN} = "${PYTHON_PN}-modules",所以目标上可以使用所有重要的东西。

配方结构

GitHub要旨

我遵循meta-python文件夹的结构,其中每个菜谱包括:

  • recipe.inc
  • recipe_version_number.bb

influxdb_python.inc中保留devtool生成的所有内容。

代码语言:javascript
运行
AI代码解释
复制
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)
#
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=046523829184aac3703a4c60c0ae2104"

HOMEPAGE = "https://github.com/influxdb/influxdb-python"
SUMMARY = "InfluxDB client"

SRC_URI = "https://github.com/influxdata/influxdb-python/archive/v${PV}.tar.gz"
SRC_URI[md5sum] = "105d88695151e241523b31dd1375096e"
SRC_URI[sha256sum] = "620de85bcca5207b06ec1565884b6d10b4be01d579a78e08b1e922f453fdac05"

DEPENDS_${PN} = "${PYTHON_PN}-modules"
RDEPENDS_${PN} = "${PYTHON_PN}-modules ${PYTHON_PN}-requests ${PYTHON_PN}-dateutil ${PYTHON_PN}-pytz ${PYTHON_PN}-six"

influxdb_python_5.2.0.bb中,我添加了以下几行:

代码语言:javascript
运行
AI代码解释
复制
inherit setuptools3 pypi                              
require influxdb-python.inc

注意到:我添加了setuptools3,因为我希望在python3.5上运行我的应用程序。对于python2.7,使用setuptools

类似地,我对pynmea2.inc也做了同样的事情

代码语言:javascript
运行
AI代码解释
复制
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)
#
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=bb5e173bc54080cb25079199959ba6b6"

HOMEPAGE = "https://github.com/Knio/pynmea2"
SUMMARY = "Python library for the NMEA 0183 protcol"

SRC_URI = "https://github.com/Knio/pynmea2/archive/${PV}.tar.gz"
SRC_URI[md5sum] = "a90baf61f4e676bef76099e4bd7c0581"
SRC_URI[sha256sum] = "8f8f68623bd2d5dab7f04a9c31813a3f4aa15467db0373cbce6b9b0ae44ca48e"

#DEPENDS_${PN} = "${PYTHON_PN}-datetime ${PYTHON_PN}-threading ${PYTHON_PN}-io"
DEPENDS_${PN} = "${PYTHON_PN}-modules"
# WARNING: the following rdepends are determined through basic analysis of the
# python sources, and might not be 100% accurate.
RDEPENDS_${PN} = "${PYTHON_PN}-modules"

对于pynmea2_1.7.1.bb

代码语言:javascript
运行
AI代码解释
复制
inherit setuptools3 pypi
require pynmea2.inc

烘烤菜谱

您可以用bitbake -k influxdb-pythonbitbake -k pynmea2或者devtool build influxdb-pythondevtool build pynmea2来测试它们。

如果没有错误,则可以使用以下方法将其部署到目标上:

代码语言:javascript
运行
AI代码解释
复制
devtool deploy-target influxdb-python user@machineIP:dest_folder

检查

您可以通过触发python外壳来进行检查。

代码语言:javascript
运行
AI代码解释
复制
# python3 

 >> import influxdb-python
 >> import pyserial

如果导入是抛出没有丢失模块错误,那么它就是成功的!!

最后步骤

  • 您可以取消部署模块:devtool undeploy-target recipe_name [address of target]
  • 将菜谱发送给您自定义的元层devtool finish recipe_name ../meta-custom

注意:如果您正在使用krogoth或更低的值,则必须手动将菜谱移动到元层。

  • 现在将这些菜谱与IMAGE_INSTALL_append = " influxdb-python pynmea2"bitbake -k your-image-name一起包含在您的IMAGE_INSTALL_append = " influxdb-python pynmea2"bitbake -k your-image-name

自定义应用

还没测试过。

但我想我会简单地添加我的应用程序,就像在hello-world中提到的那样,我的meta层。

鸡块

  • ${PYTHON_PN}-modules是真正的救世主。我尝试手动添加运行时dep,每次我在板上部署它时,总是缺少一些依赖项。但是添加modules解决了一个实例中所有缺失的deps问题。
  • 我不确定何时使用DEPENDS_${PN},但我假设大多数python应用程序依赖于基本的python-modules,因此我添加了它们。
  • 不是YOCTO的专家,但这只是我在过去2周里的发现。在Yocto中,Python缺乏适当的示例。希望这能帮上忙。
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50436413

复制
相关文章
你可以用区块链做什么?这里有4个想法要考虑
作者:甲骨文公司ERP开发高级总监David Haimes 到目前为止,您可能已经听说过至少有一个区块链的描述,而这个描述可能与金钱有关。区块链因其“分布式分类账”技术而备受关注,这是通过私人市场购买或出售加密货币和其他资产的基础。 但区块链技术比加密货币有更广泛的应用。在未来,区块链技术可能成为许多日常企业对企业交易的一部分,包括那些由企业应用程序支持的交易。 讨论的用例很多,难以理解,但我更愿意看技术如何为企业带来价值。看看区块链如何在企业应用程序中工作的四种情况,以提供更灵活,安全和简化的业务流程
企鹅号小编
2018/02/27
7100
你可以用区块链做什么?这里有4个想法要考虑
你可以用区块链做什么? 这里有4个想法要考虑
作者:甲骨文公司ERP开发高级总监David Haimes 到目前为止,您可能已经听说过至少有一个区块链的描述,而这个描述可能与金钱有关。区块链因其“分布式分类账”技术而备受关注,这是通过私人市场购买或出售加密货币和其他资产的基础。 但区块链技术比加密货币有更广泛的应用。在未来,区块链技术可能成为许多日常企业对企业交易的一部分,包括那些由企业应用程序支持的交易。 讨论的用例很多,难以理解,但我更愿意看技术如何为企业带来价值。看看区块链如何在企业应用程序中工作的四种情况,以提供更灵活,安全和简化的业务流程
架构师研究会
2018/04/09
5740
你可以用区块链做什么? 这里有4个想法要考虑
cdn怎么设置?设置cdn有什么用?
有些朋友可能并不了解cdn,其实cdn就是内容分发网络,它可以帮助用户就近获取想要的内容,在用户访问时提高网站的反应速度。现在很多朋友都想为自己的服务器设置cdn,但是具体怎么操作,大家可能并不太了解。如果大家想知道cdn怎么设置,可以参考一下下面的内容。按照步骤一步步操作,大家一定可以成功设置好cdn。
用户8715145
2021/09/30
4.1K0
Discourse 有什么办法可以设置全局通知
然后在输入框中输入文字文本就可以了,这里是可以支持 HTML 的,所以你可以在这里创建一个链接,让你的用户进入帖子以便于展示更多的内容。
HoneyMoose
2020/05/21
7050
Discourse 有什么办法可以设置全局通知
我有一个大胆的想法!
一款名叫“Pluribus”的AI扑克牌机器人在六人无限制德州扑克这项复杂游戏中,碾压了人类职业选手!——这是AI机器人首次在规模超过两人的复杂对局中击败顶级人类玩家。
量化投资与机器学习微信公众号
2019/07/17
1.2K0
我有一个大胆的想法!
看到猎豹这款机械臂,你有没有产生什么大胆的想法?
猎豹移动CEO@傅盛 发了一条微博,配了一个超级未来感的视频,结果激发了微博众粉丝连同各品牌的联合狂欢。先来瞅瞅这个视频,真第一次看到这么酷炫的机械臂。
IT派
2018/07/30
5140
看到猎豹这款机械臂,你有没有产生什么大胆的想法?
你知道什么是最美C语言代码吗?来看一下说说你的想法
各位小伙伴,看到标题大家肯定会联想许多,到底怎样算最美的代码?话不多说,代码先上:
诸葛青云
2019/10/23
5640
你知道什么是最美C语言代码吗?来看一下说说你的想法
[职场]最近聊到30岁以上的程序员,该何去何从了?你有啥想法?
今天不聊技术,就和大家聊聊30岁以上的程序员,该何去何从,有什么想法都可以留言交流交流!
全栈程序员站长
2022/07/19
4450
从 O(N) 优化到 O(logN),你的第一想法是什么?
给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。
五分钟学算法
2020/03/28
5330
unity3d:UGUI层级设置有几种方式,最终是设置了什么
RenderQueue、SortingLayer、SortingOrder等的设置,让物体B挡在物体A前面
立羽
2023/08/24
1.1K0
unity3d:UGUI层级设置有几种方式,最终是设置了什么
什么是旁路由 用旁路由有什么好处 旁路由怎么设置
时间:2019-11-23 15:48:52 / 来源:你好多多DIY / 作者:多多
全栈程序员站长
2022/09/02
7.2K0
什么是旁路由 用旁路由有什么好处 旁路由怎么设置
ai语音合成怎么设置呢?语音合成有什么作用?
短视频的门槛是比较低的,很多人都可以从事短视频行业,现在,做短视频的人也变得越来越多,短视频行业也帮助很多人赚取不少钱。不过,短视频的制作是需要后期配音的,也就是ai语音,我们需要把文字生成配音。对于一些新手小白来说,ai语音合成也是有一定的困难的,那么,ai语音合成怎么设置呢?
用户8715145
2021/11/16
3.5K0
设置好了conda镜像为什么仍然是有CondaHTTPError
管理员让他简单的修改了前面的命令, 就是删除 -c bioconda ,命令如下所示:
生信技能树
2022/12/16
4930
你知道你的Docker镜像里有什么吗?Buildpacks知道。
你不能修补一个你不知道你有的漏洞。这就是为什么了解Docker镜像中的内容是确保其安全性的第一步。幸运的是,任何使用Cloud Native Buildpacks构建的镜像都包含元数据,你不仅可以使用这些元数据来确定镜像包含什么,还可以确定每个层中包含什么以及如何创建镜像。
CNCF
2019/12/04
1.1K0
想法阶段
想法阶段 ---- 1.To-Do-List + Get-Things-Down类型 1)用户痛点 现有产品无法很好得进行添加 国内的类似产品无法进行定位来提醒用户 对于一些懒癌患者通知方式单一,比如短信,甚至电话 2)产品定位 3)解决措施 4)竞品分析 5)初步流程 ---- ---- 2.具有版本控制的设计图源文件储存平台(不局限于UI领域) ---- Slogan: Focus On Design 1)用户痛点 目前市场上没有设计图进行版本控制的软件(尤其国内传统设计企业) 使用文件夹进行版
Fred Liang
2018/07/06
5310
大师告诉你,学习数学有什么用
先介绍下上面这幅图片,选自电影《模仿游戏》,讲在二战期间,天才图灵如何破解德军密码的故事。德军的密码机非常强大,每一组电文的可能性有159X10的18次方之多,而且每24小时要更换一次秘钥,面对这台机器,图灵说“这是极其精密的机器,问题就是我们只尝试用人工的方式打败它,这样不行,只有机器才能打败另一台机器”。数学家,在战争中发挥着重要作用,此文又是一例。 作者:乔丹·艾伦伯格(Jordan Ellenberg),美国威斯康星大学数学系教授。选自《魔鬼数学》 数学知识什么时候能派上用场呢? 在地球上某个地方的
大数据文摘
2018/05/21
7840
我有一个美(大)丽(胆)的想法
上个月二哥在公司内部申请新开了一门培训课程:《图解 VPC & K8s networking model》。申请课程倒是简单,但准备过程把我累个半死。我几乎把所有的业余时间全部都花在了这个课程准备上面。10 月份下旬就要开课了,想想还有点小期待
LanceZhang
2022/10/28
5190
我有一个美(大)丽(胆)的想法
这些 AI 算法太强了,我有个大胆的想法!
好久没有推荐有趣的算法了,今天 Jack 再带大家逛逛「AI 乐园」,看看最近新出了哪些新奇好玩的 AI 算法。
Jack_Cui
2020/09/18
1.2K0
如何把你的想法一键变成图画?
前几天,在 Roam Research 群里面,有小伙伴打听,说依据关键词从 unsplash 平台搜索图片,和那个靠着 Text-to-Imge GAN 人工智能,从文字生成图像,是不是一码事儿?
王树义
2021/08/26
9710
如何把你的想法一键变成图画?
点击加载更多

相似问题

imagefttext()不工作你有什么想法吗?

14

你对ASP.Net会员有什么想法?

20

jsrender模板不会渲染,你有什么想法吗?

23

ios crash _mh_execute_header (你有什么想法吗?)

11

Rails HABTM关联没有使用.clear清除,你有什么想法?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档