You need to enable JavaScript to run this app. 如何在GitHub Actions中安装指定版本Python 3.6.5以运行pytest
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions中安装指定版本Python 3.6.5以运行pytest

GitHub Actions 安装 Python 3.6.5 运行 pytest 测试实现方案

实现逻辑

GitHub Actions 内置的 Python 3.6 系列版本覆盖范围为3.6.7到3.6.12,和需求的3.6.5版本存在偏差时,可通过编译安装指定版本Python的方式满足依赖兼容性要求,不需要依赖平台预装的Python环境。

分步操作流程

  • 安装Python编译所需的系统依赖:编译自定义Python版本需要提前配齐关联的系统开发库,否则会触发编译失败、HTTPS连接异常等问题,对应执行的系统命令为:
    sudo apt-get update && sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl
  • 初始化pyenv版本管理环境:pyenv内置了全量历史版本Python的安装源,可直接拉取3.6.5版本源码完成离线编译安装,不需要手动下载源码包做额外配置。
  • 安装并激活Python 3.6.5:通过pyenv完成3.6.5版本的编译安装后,将该版本设置为全局默认版本,执行python --version校验,输出为Python 3.6.5即代表安装成功。
  • 安装适配Python 3.6的pip版本:注意Python 3.6 最高兼容的pip版本为21.3.1,更高版本的pip已经移除了对Python 3.6的支持,直接升级最新版pip会触发兼容性报错,需指定安装pip==21.3.1。
  • 安装项目依赖并执行pytest:按照原有流程安装apache-beam[gcp]==2.19、google-cloud-pubsub==1.2.0依赖,完成后即可直接运行pytest测试用例。

可直接复用的工作流配置

jobs:
  pytest-test:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取项目代码
        uses: actions/checkout@v4
      
      - name: 安装Python编译依赖包
        run: |
          sudo apt-get update
          sudo apt-get install -y \
            build-essential libssl-dev zlib1g-dev libbz2-dev \
            libreadline-dev libsqlite3-dev wget curl llvm \
            libncurses5-dev libncursesw5-dev xz-utils tk-dev \
            libffi-dev liblzma-dev python3-openssl
      
      - name: 初始化pyenv环境
        run: |
          git clone https://github.com/pyenv/pyenv.git ~/.pyenv
          echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
          echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
          echo 'eval "$(pyenv init -)"' >> ~/.bashrc
          source ~/.bashrc
      
      - name: 编译安装Python 3.6.5
        run: |
          source ~/.bashrc
          pyenv install 3.6.5
          pyenv global 3.6.5
          python --version
      
      - name: 安装项目依赖并执行测试
        run: |
          source ~/.bashrc
          python -m pip install --upgrade pip==21.3.1
          pip install apache-beam[gcp]==2.19 google-cloud-pubsub==1.2.0 pytest
          pytest

常见踩坑提示

  • 不要直接使用GitHub预装的3.6.7及以上版本Python运行测试,该版本下apache-beam 2.19 与protobuf、grpcio的依赖匹配会出现二进制编译错误,无法正常导入模块。
  • 安装依赖时需确认当前pip路径关联的是3.6.5版本,避免依赖被安装到系统自带的Python环境中,导致测试运行时找不到对应库。
  • 若编译3.6.5时出现libssl相关报错,需确认安装的libssl-dev为1.1.1系列版本,过高版本的OpenSSL会导致Python编译后的HTTPS功能失效,无法正常从PyPI拉取依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 20:54:03