You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Conda.yml的pip可安装的包,在setup.cfg的pip中安装失败

问题原因与解决方案

你遇到的核心问题是Conda仓库(conda-forge)与PyPI仓库的包分发逻辑不一致,导致部分旧版本包在PyPI上无法找到,而Conda环境中可以正常安装。具体到torch这类包,还有额外的平台/硬件适配因素:

关键原因

  1. 包仓库差异:conda-forge会为更多平台、硬件编译适配的包版本,而PyPI上的旧版本包(如torch 1.13.1)可能仅保留特定CUDA版本/平台的轮子,甚至部分旧版本会被移除或标记为不可用。
  2. pip版本差异:你Conda环境中使用的是pip 22.3.1,而当前用于安装的pip版本可能较新,其索引查找逻辑对旧包的支持有变化,导致无法检索到目标版本。

解决方案

1. 针对PyTorch系列包指定官方安装索引

PyTorch的旧版本需要从官方维护的索引获取,而非默认的PyPI。可以通过以下两种方式处理:

  • 安装时手动指定索引:执行安装命令时添加额外索引(根据你的CUDA版本选择对应链接,比如CUDA 11.7):
    pip install . --extra-index-url https://download.pytorch.org/whl/cu117
    
  • 通过pyproject.toml配置默认索引:在项目根目录创建pyproject.toml,添加PyTorch的索引配置,这样安装时会自动读取:
    [project]
    dependencies = [
        "torch==1.13.1",
        "torchvision==0.14.1",
        "torchaudio==0.13.1",
        "pandas==1.5.3",
        "gym==0.25.1",
        "ale-py==0.7.5",
    ]
    
    [tool.pip]
    extra-index-url = ["https://download.pytorch.org/whl/cu117"]
    

2. 降级pip至Conda环境中的版本

将当前环境的pip降级到22.3.1,匹配你原Conda环境的pip版本,避免新pip的索引逻辑问题:

pip install pip==22.3.1
pip install .

3. 验证目标版本的可用性

先确认PyPI或官方索引中是否存在目标版本的适配轮子:

  • 用pip查询torch的可用版本:
    pip index versions torch
    

如果结果中没有1.13.1,说明该版本在默认PyPI索引中已不再提供,必须使用PyTorch官方索引。

4. 针对平台差异添加环境标记(可选)

如果你的包需要适配多平台,可以在setup.cfg中使用环境标记,指定不同平台的版本或安装逻辑:

install_requires =
    pandas==1.5.3
    gym==0.25.1
    ale-py==0.7.5
    torch==1.13.1; platform_system == "Linux" and platform_machine == "x86_64"
    torch==1.13.1; platform_system == "Windows"
    torchvision==0.14.1; platform_system == "Linux" and platform_machine == "x86_64"
    torchvision==0.14.1; platform_system == "Windows"
    torchaudio==0.13.1; platform_system == "Linux" and platform_machine == "x86_64"
    torchaudio==0.13.1; platform_system == "Windows"

内容的提问来源于stack exchange,提问作者Sam Lerman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:25:36