使用venv安装ddsp时numba/llvmlite编译Wheel失败求助
解决Arch Linux下Python3.11 venv环境安装DDSP的依赖报错
核心问题分析
- Numba版本冲突:DDSP默认依赖的Numba版本是0.49.1,这个版本完全不兼容Python3.11——Python3.11对
PyThreadState结构体做了修改,移除了use_tracing字段,frame字段也改为cframe,导致旧版Numba编译时出现语法错误。你本地已安装的Numba 0.58.1是兼容Python3.11的,但pip会因为DDSP的依赖约束尝试重新安装旧版本。 - LLVMLite与LLVM版本不匹配:对应Numba0.49.1的旧版LLVMLite仅支持LLVM7.x/8.x,但你系统用的是最新的LLVM16,版本差距过大,导致构建LLVMLite时直接报错。
解决方案
方法一:强制跳过依赖安装,使用本地兼容版本
直接用--no-deps参数跳过DDSP的自动依赖拉取,复用你已安装的兼容版Numba和LLVMLite:
pip3 install ddsp --no-deps
如果之前没装过兼容版本,先执行:
pip3 install numba==0.58.1 llvmlite==0.41.1
方法二:修改DDSP依赖约束后本地安装
- 从官方仓库下载DDSP源码并进入目录
- 打开
setup.py,找到Numba和LLVMLite的依赖配置行,将版本号修改为兼容Python3.11的范围,比如:
# 替换原有的numba/llvmlite依赖 'numba>=0.57.0', 'llvmlite>=0.40.0',
- 安装修改后的DDSP:
pip3 install .
方法三:使用AUR预编译包(最省心)
Arch的AUR仓库里有适配系统版本的ddsp包,用AUR助手直接安装即可,无需手动处理依赖:
yay -S python-ddsp # 或用paru等其他AUR助手
内容的提问来源于stack exchange,提问作者lonskyne
相关产品推荐
相关产品推荐

