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

如何将Jenkins构建参数传递给Python脚本?

解决Jenkins构建参数无法传递给Python脚本的问题

你的核心问题是Jenkins构建参数未注入到执行Python脚本的Shell环境中,导致Python通过os.environ.get无法读取到Week_Number变量。以下是两种可行的解决方法:

方法一:在Shell命令中直接传递环境变量

修改Jenkinsfile的sh步骤,将构建参数临时注入到当前Shell会话的环境变量中:

pipeline{
agent any
parameters {
    string description: 'write the week number', name: 'Week_Number'
}
stages{
    stage("Pass Week Number&execute script"){
        steps{
            sh 'Week_Number=${Week_Number} python3 statistics.py'
        }
    }
}
}

这种方式直接在执行Python命令的上下文里设置环境变量,Python脚本无需修改,原有的weekNum = int(os.environ.get("Week_Number"))即可正常读取。

方法二:使用Pipeline的Environment块定义全局环境变量

更规范的做法是通过environment块将构建参数转为Pipeline级别的环境变量,适用于需要在多个步骤中复用参数的场景:

pipeline{
agent any
parameters {
    string description: 'write the week number', name: 'Week_Number'
}
// 定义环境变量,将构建参数赋值给环境变量
environment {
    WEEK_NUMBER = "${params.Week_Number}"
}
stages{
    stage("Pass Week Number&execute script"){
        steps{
            sh 'python3 statistics.py'
        }
    }
}
}

此时需要同步修改Python脚本中的变量名(保持大小写一致):

import os
weekNum = int(os.environ.get("WEEK_NUMBER"))

额外调试建议

为了避免参数为空导致的转换错误,可以给os.environ.get添加默认值:

weekNum = int(os.environ.get("Week_Number", 0))  # 未获取到参数时默认使用0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:00:49