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

编译Hue执行make apps报错Setuptools替换distutils问题求助

解决Hue编译时Setuptools替换distutils引发的AssertionError问题

原因分析

问题出在Python 3.7环境下,新版setuptools默认会替换Python标准库的distutils,但Hue的旧版编译脚本以及它依赖的部分老版本包(比如特定pyzmq版本)依赖原生distutils的接口,替换后就触发了断言错误。

可行解决方案

1. 强制使用原生distutils

通过环境变量禁用setuptools的distutils替换逻辑:

export SETUPTOOLS_USE_DISTUTILS=stdlib

然后重新执行make apps,这个操作会让setuptools使用Python自带的distutils,避开接口兼容问题。

2. 锁定setuptools到兼容版本

新版setuptools的替换逻辑是问题根源,直接降级到Python 3.7支持的稳定版本:

pip install setuptools==58.0.4

这个版本是Python 3.7能用的最后几个不强制替换distutils的版本之一。之后清理编译缓存:

make clean

再重新运行make apps。

3. 确认Hue分支兼容性

确保你克隆的Hue分支支持Python 3.7,比如Hue 4.10.x及更早的分支(Hue 5.x开始逐步放弃对3.7的支持)。如果用的是较新分支,切换到对应稳定分支:

git checkout branch-4.10

然后重新走编译流程。

4. 手动指定distutils路径(极端情况)

如果上面的方法都无效,直接给Hue的编译环境指定原生distutils路径:
找到Hue根目录下的build/env/bin/activate脚本,在末尾添加一行:

export PYTHONPATH=/usr/lib/python3.7/distutils:$PYTHONPATH

把/usr/lib/python3.7/distutils换成你系统里实际的distutils路径,然后激活环境再编译:

source build/env/bin/activate
make apps

验证

执行完任一方案后,观察是否不再出现Setuptools替换distutils的警告,且make apps能顺利完成编译,不再抛出AssertionError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:15:35