You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Yocto添加python3-pip自定义配方编译失败求助

解决Yocto构建python3-pip时找不到setup.py的问题

核心问题

你使用的pip main分支已经移除了setup.py,改用现代的pyproject.toml构建系统,因此编译时会提示找不到该文件。同时配方中存在不符合Yocto规范的写法,导致问题持续存在。

修复步骤及修正后的配方

1. 改用pip稳定版本的源码

放弃main分支,选择包含setup.py的稳定release版本,推荐直接使用官方发布的tarball(避免git同步的潜在问题)。

2. 修正Yocto配方规范

  • 移除绝对路径的inherit写法,Yocto会自动从已配置的meta层查找bbclass文件
  • 删除自定义的do_compile和do_install,setuptools3.bbclass已经封装了标准的构建安装流程
  • 更新LIC_FILES_CHKSUM以匹配所选版本的校验值
  • 调整版本号为实际对应版本

修正后的配方示例:

DESCRIPTION = "Python package installer for Python 3"
HOMEPAGE = "https://pypi.org/project/pip/"
LICENSE = "MIT"
# 对应pip 23.3.1版本的LICENSE.txt md5值
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=63ec52baf95163b597008bb46db68030"

# 使用官方发布的tarball,稳定性更高
SRC_URI = "https://files.pythonhosted.org/packages/source/p/pip/pip-23.3.1.tar.gz"
SRC_URI[sha256sum] = "a1813b4e59f5f4a018f79f29d719f1d977d94c42c7c0d9784e8919f0f7a39e76"

S = "${WORKDIR}/pip-23.3.1"

inherit setuptools3

DEPENDS = "python3-setuptools python3-wheel"

FILES_${PN} = "${bindir}/pip3 ${PYTHON_SITEPACKAGES_DIR}/"

额外说明

  • 如果坚持使用git源码,需指定包含setup.py的tag,例如:SRC_URI = "git://github.com/pypa/pip.git;tag=23.3.1;protocol=https",对应的SRCREV为该tag的commit哈希值
  • 构建前先清理旧工作目录:bitbake -c clean python3-pip,再重新执行构建
  • 对于NXP i.MX的Yocto项目,优先检查是否有现成meta层提供python3-pip(如meta-openembedded的meta-python层),无需自行编写配方

内容的提问来源于stack exchange,提问作者Coder101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:42:33