安装fairseq遇pip依赖冲突:omegaconf版本需求一致仍报错
解决fairseq依赖冲突问题
问题分析
从报错信息来看,fairseq 0.12.2要求omegaconf<2.1,hydra-core 1.0.7要求omegaconf>=2.0.5且<2.1,理论上存在明确的兼容版本区间(2.0.5~2.1),但pip的依赖解析器仍报错,大概率是解析逻辑限制或其他间接依赖干扰导致。
解决步骤
- 明确omegaconf的兼容版本范围:修改setup.py中的omegaconf依赖为
"omegaconf>=2.0.5,<2.1",缩小范围后让pip更容易定位到同时满足两个包要求的版本。修改后的依赖片段:install_requires=[ "cffi", "cython", "hydra-core==1.0.7", "omegaconf>=2.0.5,<2.1", "numpy>=1.21.3", "regex", "sacrebleu>=1.4.12", "torch>=1.13", "tqdm", "bitarray", "torchaudio>=0.8.0", "scikit-learn", "packaging", ] - 放宽hydra-core的版本限制:去掉setup.py中hydra-core的固定版本号,改为
"hydra-core>=1.0.7",让pip自动选择与fairseq兼容的hydra-core版本,避免固定版本引发的隐性冲突。 - 使用旧版依赖解析器:如果上述方法无效,执行安装命令时添加
--use-deprecated=legacy-resolver参数,利用旧版pip的解析逻辑尝试解决冲突:pip install . --use-deprecated=legacy-resolver - 手动预先安装兼容版本:先单独安装符合要求的omegaconf版本,再安装fairseq:
pip install omegaconf==2.0.6 pip install .
内容的提问来源于stack exchange,提问作者Alice Mabille
相关产品推荐
相关产品推荐

