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

Windows环境GitHub Workflow配置Python2/3双版本问题求解

Windows环境GitHub Workflow同时配置Python2/Python3独立调用方案

问题根因

  • update-environment参数警告:该参数未在actions/setup-python@v4版本中正式上线,你查到的参数定义属于后续版本代码,v4版本的合法输入项确实不包含该字段,因此触发警告。
  • 路径反斜杠丢失:Bash环境下反斜杠\为默认转义字符,变量赋值时未用引号包裹路径值,反斜杠会被解析为转义符自动移除,最终生成无效路径。
  • 额外操作冗余:原配置中重命名Python可执行文件、手动修改PATH的操作没有必要,反而增加了路径处理的出错概率。

实现方案

不需要重命名可执行文件、不需要手动调整PATH顺序,直接通过步骤输出的绝对路径调用对应版本即可,从根源避免路径冲突和转义问题:

  1. 升级setup-python到v5版本,该版本正式支持update-environment参数,安装Python2时将该参数设为false,就不会覆盖全局PATH中已安装的Python3环境,保证默认python/pip命令指向Python3版本。
  2. 所有Bash场景下的Windows路径变量赋值,都用双引号包裹,避免反斜杠被转义吞掉。
  3. 调用Python2时直接使用步骤输出的绝对路径,和Python3的调用完全隔离,不会出现版本冲突。

可用工作流配置示例

Job1:
    name: Running Unittests
    runs-on: windows-latest
    strategy:
      matrix:
        python-version: [3.8]
    steps:
    - uses: actions/checkout@v2
    # 优先安装Python3,作为全局默认Python版本
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}
    # 安装Python2,配置为不修改全局环境变量
    - name: Set up Python2.7
      uses: actions/setup-python@v5
      id: setup-python2
      with:
        python-version: 2.7
        update-environment: false
    # 验证两个版本可正常独立调用
    - name: Verify Python versions
      shell: bash
      run: |
        # 路径用双引号包裹,避免反斜杠被转义
        PYTHON2_PATH="${{ steps.setup-python2.outputs.python-path }}"
        echo "Default Python3 version:"
        python --version
        echo "Python2 install path: $PYTHON2_PATH"
        "$PYTHON2_PATH" --version
    # 分别安装两个版本的依赖
    - name: Install dependencies
      shell: bash
      run: |
        PYTHON2_PATH="${{ steps.setup-python2.outputs.python-path }}"
        # 安装Python2版本依赖
        curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
        "$PYTHON2_PATH" get-pip.py
        "$PYTHON2_PATH" -m pip install numpy
        # 安装Python3版本依赖
        pip install .
    # 后续测试步骤调用规则:
    # 调用Python3直接使用 python 命令
    # 调用Python2直接使用 "$PYTHON2_PATH" 命令

可选替代方案

如果不想升级setup-python版本,也可以直接使用Windows自带的py启动器实现多版本调用:两个Python版本安装完成后,用py -2命令调用Python2,py -3命令调用Python3,不需要额外配置路径。但该方案依赖py启动器的安装状态,稳定性略低于直接用绝对路径调用的方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:27:35