如何使用 setuptools3 以与 setuptools 相同的方式在 bitbake 配方中存储 pyc 文件?

How to store pyc files with setuptools3 in bitbake recipe in the same way setuptools does?

我将 https://github.com/yoctocookbook/meta-custom/tree/master/recipes-python/python-helloworld 中的 python-helloworld 添加到我的 yocto 构建中,效果很好。文件被预编译并复制到图像:

ls /usr/lib/python2.7/site-packages/helloworld
__init__.py   __init__.pyc  main.py       main.pyc

我需要使用 python3。将食谱中的 inherit setuptools 更改为 inherit setuptools3 将 python 3.7 而不是 2.7 添加到我的图像中,脚本可以正常工作,但预编译文件现在位于子文件夹 __pycache__ 中,扩展名为他们的名字:

ls /usr/lib/python3.7/site-packages/helloworld/__pycache__/
__init__.cpython-37.pyc  main.cpython-37.pyc

我想从目标构建中删除 .py 源代码文件。 使用 setuptools 我可以删除 .py 文件并且脚本使用 .pyc 文件可以正常工作。使用 setuptools3,python3 在删除 .py 文件后引发 ModuleNotFoundError

移动并重命名(如 __pycache__/main.cpython-37.pycmain.pyc)它再次起作用。

告诉 setuptools3 以与 setuptools 相同的方式创建预编译 .pyc 文件以避免这种移动和重命名的正确方法是什么?

当通读 pep-3147 you seem to be relying on a legacy case 4 behavior but case 3 是正常行为时,我建议不要依赖遗留行为,因为它应该会消失。