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

GitHub Actions中pip缓存启用失败问题求助

解决GitHub Actions中pip缓存权限问题的方案

报错核心原因是默认pip缓存目录/home/github-action-runner/.cache/pip的权限不符合要求,当前运行用户无读写权限,导致actions/setup-python执行pip cache dir命令失败。以下是几种可行的解决办法:

方法一:手动指定可写的pip缓存目录

在setup-python步骤前创建一个当前用户有权限的缓存目录,通过环境变量告知pip使用该目录:

name: Preparation
on:
  workflow_call:
  workflow_dispatch:
  
jobs:
  preparation:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
        
      - name: 创建pip缓存目录并设置环境变量
        run: |
          mkdir -p .pip-cache
          echo "PIP_CACHE_DIR=$(pwd)/.pip-cache" >> $GITHUB_ENV
          
      - name: Setup Python environment
        uses: actions/setup-python@v4
        with:
          python-version: 3.x
          cache: 'pip'
          
      - name: Install Python dependencies
        run: pip install -r requirements.txt

工作目录下的.pip-cache由当前运行用户创建,天然具备读写权限,setup-python会基于这个目录正常处理缓存逻辑。

方法二:改用actions/cache手动管理pip缓存

跳过setup-python的自动缓存功能,直接用官方缓存 action 手动控制缓存路径和触发条件,灵活性更高:

name: Preparation
on:
  workflow_call:
  workflow_dispatch:
  
jobs:
  preparation:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3
        
      - name: Setup Python environment
        uses: actions/setup-python@v4
        with:
          python-version: 3.x
          
      - name: 获取pip缓存路径
        id: pip-cache
        run: |
          echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
          
      - name: 缓存pip依赖
        uses: actions/cache@v3
        with:
          path: ${{ steps.pip-cache.outputs.dir }}
          key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
          restore-keys: |
            ${{ runner.os }}-pip-
            
      - name: Install Python dependencies
        run: pip install -r requirements.txt

通过requirements.txt的哈希值作为缓存key,只有当依赖清单变更时才会重新生成缓存,能有效复用已有依赖包。

方法三:修复默认缓存目录权限(不推荐)

若坚持使用默认缓存目录,可提前修改目录权限,但这种方式可能破坏runner原有环境,仅适用于自托管runner场景:

- name: 修复pip缓存目录权限
  run: |
    sudo mkdir -p /home/github-action-runner/.cache/pip
    sudo chown -R $USER:$USER /home/github-action-runner/.cache/pip

执行完该步骤后再运行setup-python即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 00:45:40