MacOS Ventura下安装Lux.jl时出现cuDNN包版本不兼容错误
Mac OS Ventura + Julia 1.8.5 安装 Lux.jl 版本冲突错误
执行pkg> add Lux后出现版本解析错误,核心报错:
ERROR: Unsatisfiable requirements detected for package cuDNN [02a925ec]:
完整错误日志(翻译后):
正在解析包版本... 错误:检测到包 cuDNN [02a925ec] 的需求无法满足: cuDNN [02a925ec] 日志: ├─可用版本:1.0.0-1.0.2 或 未安装 ├─受限于与 CUDA [052768ef] 的兼容性要求,版本被限制为:未安装 │ └─CUDA [052768ef] 日志: │ ├─可用版本:0.1.0-4.1.4 或 未安装 │ ├─受限于Julia兼容性要求,版本被限制为:[2.3.0, 2.5.0-4.1.4] 或 未安装 │ ├─受限于与 Adapt [79e6a3ab] 的兼容性要求,版本被限制为:2.4.0-4.1.4 或 未安装,剩余可用版本:2.5.0-4.1.4 或 未安装 │ │ └─Adapt [79e6a3ab] 日志: │ │ ├─可用版本:0.3.0-3.6.1 或 未安装 │ │ ├─受限于与 Lux [b2108857] 的兼容性要求,版本被限制为:3.0.0-3.6.1 │ │ │ └─Lux [b2108857] 日志: │ │ │ ├─可用版本:0.3.0-0.4.50 或 未安装 │ │ │ ├─被显式要求限制为任意版本,剩余可用版本:0.3.0-0.4.50 │ │ │ ├─受限于与 Zygote [e88e6eb3] 的兼容性要求,版本被限制为:0.4.48-0.4.50 或 未安装,剩余可用版本:0.4.48-0.4.50 │ │ │ │ └─Zygote [e88e6eb3] 日志: │ │ │ │ ├─可用版本:0.1.0-0.6.60 或 未安装 │ │ │ │ ├─受限于与 Requires [ae029012] 的兼容性要求,版本被限制为:0.4.3-0.6.60 或 未安装 │ │ │ │ │ └─Requires [ae029012] 日志: │ │ │ │ │ ├─可用版本:0.5.0-1.3.0 或 未安装 │ │ │ │ │ └─受限于与 Lux [b2108857] 的兼容性要求,版本被限制为:1.0.0-1.3.0 │ │ │ │ │ └─Lux [b2108857] 日志:见上文 │ │ │ │ ├─受限于与 NNlib [872c559c] 的兼容性要求,版本被限制为:0.6.0-0.6.60 或 未安装 │ │ │ │ │ └─NNlib [872c559c] 日志: │ │ │ │ │ ├─可用版本:0.3.2-0.8.19 或 未安装 │ │ │ │ │ ├─受限于与 Lux [b2108857] 的兼容性要求,版本被限制为:0.8.0-0.8.19 │ │ │ │ │ │ └─Lux [b2108857] 日志:见上文 │ │ │ │ │ └─受限于与 Compat [34da2185] 的兼容性要求,版本被限制为:[0.3.2-0.7.6, 0.7.10-0.7.11, 0.8.7-0.8.19] 或 未安装,剩余可用版本:0.8.7-0.8.19 │ │ │ │ │ └─Compat [34da2185] 日志: │ │ │ │ │ ├─可用版本:1.0.0-4.6.1 或 未安装 │ │ │ │ │ ├─受限于与 TerminalMenus [dc548174] 的兼容性要求,版本被限制为:1.0.0-2.2.1 │ │ │ │ │ │ └─TerminalMenus [dc548174] 日志: │ │ │ │ │ │ ├─可用版本:0.1.0 或 未安装 │ │ │ │ │ │ └─被显式要求限制为任意版本,剩余可用版本:0.1.0 │ │ │ │ │ ├─受限于Julia兼容性要求,版本被限制为:2.0.0-4.6.1 或 未安装,剩余可用版本:2.0.0-2.2.1 │ │ │ │ │ └─受限于与 DiffEqBase [2b5f629d] 的兼容性要求,版本被限制为:2.2.0-3.46.2,剩余可用版本:2.2.0-2.2.1 │ │ │ │ │ └─DiffEqBase [2b5f629d] 日志: │ │ │ │ │ ├─可用版本:3.13.2-6.123.0 或 未安装 │ │ │ │ │ ├─受限于与 Requires [ae029012] 的兼容性要求,版本被限制为:6.8.0-6.123.0 或 未安装,剩余可用版本:6.8.0-6.123.0 │ │ │ │ │ │ └─Requires [ae029012] 日志:见上文 │ │ │ │ │ ├─受限于与 Setfield [efcf1570] 的兼容性要求,版本被限制为:[3.13.2-6.58.0, 6.74.0-6.123.0] 或 未安装,剩余可用版本:[6.8.0-6.58.0, 6.74.0-6.123.0] │ │ │ │ │ │ └─Setfield [efcf1570] 日志: │ │ │ │ │ │ ├─可用版本:0.2.0-1.1.1 或 未安装 │ │ │ │ │ │ └─受限于与 Lux [b2108857] 的兼容性要求,版本被限制为:0.8.0-1.1.1 │ │ │ │ │ │ └─Lux [b2108857] 日志:见上文 │ │ │ │ │ ├─受限于与 Compat [34da2185] 的兼容性要求,版本被限制为:[3.13.2-6.22.2, 6.24.0-6.123.0] 或 未安装,剩余可用版本:[6.8.0-6.22.2, 6.24.0-6.58.0, 6.74.0-6.123.0] │ │ │ │ │ │ └─Compat [34da2185] 日志:见上文 │ │ │ │ │ ├─受限于与 ChainRulesCore [d360d2e6] 的兼容性要求,版本被限制为:[3.13.2-6.10.0, 6.59.1, 6.69.0-6.123.0] 或 未安装,剩余可用版本:[6.8.0-6.10.0, 6.74.0-6.123.0] │ │ │ │ │ │ └─ChainRulesCore [d360d2e6] 日志: │ │ │ │ │ │ ├─可用版本:0.1.0-1.15.7 或 未安装 │ │ │ │ │ │ ├─受限于与 Lux [b2108857] 的兼容性要求,版本被限制为:1.0.0-1.15.7 │ │ │ │ │ │ │ └─Lux [b2108857] 日志:见上文 │ │ │ │ │ │ └─受限于与 NNlib [872c559c] 的兼容性要求,版本被限制为:1.13.0-1.15.7 │ │ │ │ │ │ └─NNlib [872c559c] 日志:见上文 │ │ │ │ │ └─受限于与 DataStructures [864edb3b] 的兼容性要求,版本被限制为:3.13.2-6.44.3 或 未安装,剩余可用版本:6.8.0-6.10.0 │ │ │ │ │ └─DataStructures [864edb3b] 日志: │ │ │ │ │ ├─可用版本:0.9.0-0.18.13 或
问题原因
Lux.jl的依赖链涉及CUDA相关包,但Mac OS Ventura(尤其是Apple Silicon芯片机型)不支持NVIDIA CUDA,导致包管理器无法找到兼容的cuDNN与CUDA版本组合,进而触发整个依赖链的版本冲突。
解决方法
方法1:创建独立环境安装
避免现有环境中已安装的包(如TerminalMenus、DiffEqBase等)干扰依赖解析:
- 打开Julia,进入包管理器:输入
] - 创建并激活临时环境:
或创建永久环境:activate --tempactivate ~/.julia/environments/lux_env - 安装Lux.jl:
add Lux
方法2:排除CUDA相关包强制安装
若需在现有环境安装,可明确排除CUDA包,让Lux.jl使用CPU版本:
pkg> add Lux --exclude CUDA
方法3:升级Julia版本
尝试使用Julia 1.9+版本,新版本包管理器的依赖解析效率更高,且Lux.jl对其兼容性更好,可绕过当前版本冲突。
方法4:指定兼容的Lux.jl版本
若上述方法无效,可尝试安装稍旧版本的Lux.jl,规避与现有环境包的冲突:
pkg> add Lux@0.4.45
内容的提问来源于stack exchange,提问作者BAR
相关产品推荐
相关产品推荐

