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

Yocto/BitBake构建ClickHouse Python库时命名下划线问题排查

解决方案

1. 修正解压目录路径(核心错误)

你之前的S变量指向了错误的目录。原压缩包clickhouse_connect-0.8.18.tar.gz解压后,目录名是**clickhouse_connect-0.8.18**(下划线,不是横杠),所以必须把.inc文件里的S变量改成:

S = "${WORKDIR}/clickhouse_connect-0.8.18"

2. 阻止PyPI自动覆盖SRC_URI

Yocto的Python recipe类会自动根据recipe名称从PyPI拉取包,直接覆盖你手动设置的SRC_URI。要禁用这个行为,在.inc或.bb文件中添加:

# 明确指定PyPI上的真实包名,避免命名解析混乱
PYPI_PACKAGE_NAME = "clickhouse_connect"
PYPI_PACKAGE_VERSION = "0.8.18"

# 禁用自动PyPI拉取,强制使用自定义SRC_URI
SKIP_RECIPE_FETCH = "1"

3. 调试目录结构的实用技巧

作为新手,要确认解压后的实际目录,你可以给recipe加个调试步骤:
在.bb文件中添加这段代码,编译时会输出WORKDIR下的所有内容,帮你确认目录路径:

do_compile_prepend() {
    echo "=== 查看WORKDIR内容 ==="
    ls -la ${WORKDIR}
}

修正后的完整配置示例

python3-clickhouse-connect_0.8.18.inc

DESCRIPTION = "Clickhouse Integration for Python3"
SECTION = "devel/python"
LICENSE = "Apache-2.0"  # 注意:clickhouse-connect实际采用Apache许可证,不要填CLOSED
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"

PYPI_PACKAGE_NAME = "clickhouse_connect"
PYPI_PACKAGE_VERSION = "0.8.18"
SKIP_RECIPE_FETCH = "1"

SRC_URI = "https://files.pythonhosted.org/packages/2a/3d/a06d938d1efb94fdf8a343bbe1dc4ad2458aef08b9c69e0080d695ab24c1/clickhouse_connect-0.8.18.tar.gz"
SRC_URI[md5sum] = "5996416b9102e4b18b9e492f886f1aa9"
SRC_URI[sha256sum] = "206a33decf2d9ed689d3156ef906dc06f1db7eabfe512e3552e08e9e86b4c73a"

S = "${WORKDIR}/clickhouse_connect-0.8.18"

# 根据实际需求补充依赖
RDEPENDS_${PN} = "python3-requests python3-setuptools"

python3-clickhouse-connect_0.8.18.bb

require python3-clickhouse-connect_0.8.18.inc
inherit setuptools3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:33:09