如何配置Conda环境实现从不同索引分别安装Python包?
解决Conda环境中PyPI索引优先级问题
当前配置存在的核心问题:pip处理多个requirements文件时,后一个文件里的--index-url会覆盖前一个的全局索引设置,导致所有包都被迫从连接不稳定的自定义索引下载,最终引发大体积包安装失败。
以下是两种可行的解决方案:
方案一:使用额外索引补充(推荐)
将自定义索引设为额外补充索引,保留官方PyPI作为默认索引,pip会优先从官方索引查找包,仅当官方索引无对应包时,才尝试自定义索引。
- 保持
requirementsA.txt内容不变:
--index-url https://pypi.org/simple byexample==10.5.6
- 修改
requirementsB.txt,将--index-url替换为--extra-index-url:
--extra-index-url https://pypi.mydomain.yada some_unique_package_for_that_index==0.3
方案二:单独指定目标包的索引
只为需要从自定义索引安装的独有包单独设置索引,不改变全局默认索引规则。
- 保持
requirementsA.txt内容不变 - 修改
requirementsB.txt为:
some_unique_package_for_that_index==0.3 --index-url https://pypi.mydomain.yada
执行验证
保持environment.yml原内容不变,执行命令:
conda env create -f environment.yml
此时,除指定的独有包外,其余包均从官方PyPI索引下载,有效规避自定义索引不稳定带来的安装风险。
内容的提问来源于stack exchange,提问作者Boris Kalinin
相关产品推荐
相关产品推荐

