安装magenta-gpu遇依赖错误:--use-deprecated是否有效及修复方法
1. --use-deprecated=legacy-resolver参数是否有效?
这个参数是有效的。它会让pip回退到旧版的依赖解析器逻辑,在pip 20.3引入新的依赖解析器后,该参数主要用来解决新解析器无法处理的依赖冲突、命名空间包识别异常等问题——你遇到的"Orbax是命名空间而非独立包"报错,正是新解析器对命名空间包的严格检查导致的,启用旧解析器确实能绕过这类检查,但它无法解决"找不到匹配版本的orbax-checkpoint"的问题,因为这本质是magenta-gpu的依赖配置和现有orbax-checkpoint版本不兼容导致的。
2. 解决"找不到满足要求的orbax-checkpoint版本"的方法
手动安装兼容版本的orbax-checkpoint
先查询magenta-gpu依赖的orbax版本范围(可查看magenta项目的setup.py或pyproject.toml文件中的依赖声明),然后安装对应兼容的orbax-checkpoint版本,比如:pip install orbax-checkpoint==0.3.0完成后再执行
pip install magenta-gpu,如果仍有依赖问题,可以加上--no-deps参数跳过自动依赖安装,之后手动补全其他缺失的依赖。修改magenta源码的依赖配置后本地安装
克隆magenta的源码仓库,找到项目根目录下的setup.py(或pyproject.toml),将依赖项中的orbax替换为orbax-checkpoint,并调整对应的版本范围,之后在源码目录执行本地安装:pip install .[gpu](确保你的环境已经配置好CUDA等GPU依赖)
调整pip版本
过新或过旧的pip版本可能会加剧依赖解析问题,建议使用pip 22.x系列的版本,先升级或降级pip:pip install pip==22.3.1之后再尝试安装magenta-gpu。
内容的提问来源于stack exchange,提问作者vioJaSonG

