如何将 python-contextlib 添加到 python_2.7.3.bbappend?

How do I add python-contextlib to python_2.7.3.bbappend?

在我的custom-layer/recipes-devtools/python/python_2.7.3.bbappend中,我有以下内容

PROVIDES+="${PN}-contextlib "

PACKAGES+="${PN}-contextlib "

SUMMARY_${PN}-contextlib="Python utilities for with-statementcontexts."
RDEPENDS_${PN}-contextlib="${PN}-core "
FILES_${PN}-contextlib="${libdir}/python2.7/contextlib.* "

RDEPENDS_${PN}-modules+= "${PN}-contextlib "

当我执行 bitbake -f python-contextlib - 没有失败。

当我在另一个配方中添加 python-contextlib 作为 RDEPEND 时,在执行 do_rootfs 任务时失败,如“没有包提供 python-contextlib”。

当我构建 python 时,当我进入 python devshell 时,我确实看到文件 contextlib.py 存在。因此,似乎 bbappend 文件已被正确拾取。 bitbake-layers show-appends 还确认 bbappend 文件正在获取。

我该如何解决这个问题?

看起来这个人也有类似的问题 - http://permalink.gmane.org/gmane.linux.embedded.yocto.general/21170

我手动验证了这个。我在 python_2.7.3.bb 文件的末尾添加了 python_2.7.3.bbappend 的内容,但是没有用。

然后我在 python-2.7-manifest.inc 文件的末尾添加了 python_2.7.3.bbappend 的内容。

您的第一个 bitbake 失败了,因为 bitbake 使用配方名称,而不是运行时包名称。

如果您真的希望将 contextlib 拆分成一个单独的包,那么我会挑选 27dbacdb88ee3e79f4c95a779d8a7e8c5c8f941d 和 b6b9df15a630605619bff060d5073272685058d6(来自 oe-core)。

这里的问题可能是排序问题,您在 manifest inc 处理完所有其他内容后放置 PN-contextlib。使用 PACKAGES =+ 来添加而不是追加。

请注意,contextlib 打包时没有此附加项,很可能在 python-misc 包中,所以我想知道为什么这么多人迫切希望将其拆分。