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

标签 python setuptools yocto bitbake openembedded

我从 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 时你似乎依赖于遗产case 4行为但是 case 3是正常行为,我建议不要依赖遗留行为,因为它应该消失。

关于python - 如何以与setuptools相同的方式在bitbake配方中使用setuptools3存储pyc文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58611684/

相关文章:

python - 在 distutils/setuptools 之前和之后访问数据文件

linux - 如何在使用 Yocto 构建的嵌入式系统上关闭控制台?

linux - Yocto Custom Image Recipe 不会将文件安装到最终的 rootfs 中

deb - 我可以在 BitBake 构建期间安装 .deb 吗?

python - 如何测试 windowFlags 中是否设置了 WindowStaysOnTopHint 标志?

python - 循环之神再次来袭——如何在 GUI mainloop 的情况下保持套接字连接?

Python多进程运行多次

python - 除了 Javascript shell 之外,MongoDB 是否还有 Ruby Shell 或 Python Shell?

Python:为什么 pip install 不从 sdist 部署我的代码?

python - Python 发行版的用例是什么?