如何构建包含多版本Python的Yocto镜像?适配STM32MPU157F平台
在OpenSTLinux的STM32MPU157F镜像中添加Python 3.11.5的步骤
1. 进入Yocto构建环境
切换到你当前OpenSTLinux的build目录,比如cd build-openstlinuxweston-stm32mp1(具体目录名根据你的实际配置调整)。
2. 添加Python 3.11的编译配方
OpenSTLinux基于Yocto框架,需要为Python 3.11.5添加对应的recipe:
- 复制现有Python 3.12的recipe目录,重命名为
python3.11相关路径,比如创建recipes-devtools/python/python3.11_3.11.5.bb文件。 - 修改该文件中的
PV值为3.11.5,更新SRC_URI指向Python 3.11.5的源码包地址,同时调整编译依赖、配置参数,确保和当前系统组件兼容。
3. 配置构建参数
在conf/local.conf文件中添加以下配置,确保Python 3.11被纳入镜像:
# 启用Python 3.11的pip和setuptools组件 PACKAGECONFIG_pn-python3.11 += "pip setuptools" # 将Python 3.11及其依赖包添加到镜像安装列表 IMAGE_INSTALL:append = " python3.11 python3.11-pip python3.11-setuptools" # 指定默认Python版本为3.12.4(可选,避免默认版本被替换) PREFERRED_VERSION_python3 = "3.12.4"
4. 避免版本冲突
Yocto默认会将不同版本的Python安装到独立路径:
- Python 3.11的可执行文件路径为
/usr/bin/python3.11,Python 3.12对应/usr/bin/python3.12,/usr/bin/python3会指向默认的3.12版本。 - 后续运行AI应用时,直接指定对应版本的可执行文件路径即可,比如用
python3.11 your_ai_app.py来调用3.11版本运行程序。
5. 重新构建镜像
执行镜像构建命令(替换为你使用的镜像名称,比如st-image-core):
bitbake st-image-weston
6. 验证安装结果
将新镜像烧录到STM32MPU157F平台后,登录系统执行以下命令确认版本:
python3.11 --version python3.12 --version
若两个版本都能正常输出版本号,说明安装完成,之后可分别为两个版本安装AI应用所需的依赖包。
内容的提问来源于stack exchange,提问作者ForgottenTale
相关产品推荐
相关产品推荐

