You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让pip优先指定镜像源仍可从其他源下载,同时实现仅CPU环境的依赖安装?

如何让pip优先指定镜像源仍可从其他源下载,同时实现仅CPU环境的依赖安装?

嘿,太懂你这种被一堆CUDA大依赖搞崩溃的感觉了——下到6GB还没结束确实离谱!刚好有几个能一次搞定的方案,不用反复手动折腾--no-deps,给你捋一捋:

一、最直接的单命令解决方案

核心是用--extra-index-url配合--index-url,而不是单独用--index-url(单独用会彻底替换默认源,找不到包就报错)。这个组合能实现:优先从PyTorch CPU源找包,找不到的自动 fallback 到默认PyPI源,完美匹配你的需求。

如果你是要下载依赖包,直接运行这个命令:

pip download --no-cache-dir -r /path/your/requirements.txt --index-url https://download.pytorch.org/whl/cpu --extra-index-url https://pypi.org/simple/

要是你直接要安装到环境里,把download换成install就行:

pip install --no-cache-dir -r /path/your/requirements.txt --index-url https://download.pytorch.org/whl/cpu --extra-index-url https://pypi.org/simple/

这个命令的关键逻辑:

  • --index-url把PyTorch CPU源设为最高优先级的主索引,torch、torchvision这类有CPU专属版本的包会直接从这里拿,完全避开CUDA的大文件
  • --extra-index-url添加默认PyPI源作为兜底,那些PyTorch源没有的普通依赖包,会自动从这里下载

二、配置pip默认行为,省得每次敲长命令

如果你经常需要搭建这种CPU环境,直接把源配置写到pip的默认配置里,以后不用每次都输一堆参数:

  1. 找到pip的配置文件位置:
    • Linux/macOS:在用户主目录下创建或编辑~/.config/pip/pip.conf
    • Windows:在C:\Users\你的用户名\AppData\Roaming\pip\pip.ini(如果没有就新建)
  2. 写入以下内容:
    [global]
    index-url = https://download.pytorch.org/whl/cpu
    extra-index-url = https://pypi.org/simple/
    
  3. 之后直接运行简单命令就行:
    pip download --no-cache-dir -r /path/your/requirements.txt
    

三、额外的小技巧,让CPU环境更稳妥

  • 给requirements文件加版本标记:如果怕torch相关的包不小心下到CUDA版本,可以在requirements.txt里明确指定CPU版本的标识符,比如:
    torch>=2.0.0+cpu
    torchvision>=0.15.0+cpu
    # 其他依赖正常写
    
    配合上面的源配置,能100%确保拿到CPU专属的小体积包。
  • 用虚拟环境隔离:用Python3.10自带的venv创建独立环境,避免和其他项目依赖冲突:
    python3.10 -m venv cpu-only-env
    # 激活环境(Linux/macOS)
    source cpu-only-env/bin/activate
    # 激活环境(Windows)
    cpu-only-env\Scripts\activate
    # 之后再执行pip命令
    

四、如果以上方案还有小问题的简化处理

要是偶尔遇到个别包在两个源都有冲突的情况,不用反复跑--no-deps,可以分两步:

  1. 先下载/安装torch相关的核心CPU依赖:
    pip download torch torchvision --index-url https://download.pytorch.org/whl/cpu
    
  2. 再用--no-deps处理剩下的依赖,避免重新下载已有的包:
    pip download --no-cache-dir --no-deps -r /path/your/requirements.txt
    

这样下来,既能精准控制CPU版本的包,又不用再面对几GB的无用CUDA文件,整个流程会顺畅很多~

火山引擎 最新活动