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

Azure DevOps发布任务中Python脚本访问预定义变量遇语法错误求助

解决Azure DevOps发布任务中Python脚本访问预定义变量的语法错误

错误原因

你代码里用的$(变量名)是Azure DevOps的变量引用语法,但这不属于Python的合法语法。Python会将$(app-id)解析为表达式,把-识别成减号,导致app-id被当作app - id处理,既不符合字面量规则,又因id未定义触发语法错误,最终报SyntaxError: invalid decimal literal。

解决方法

方法1:直接在脚本任务中注入变量值

在Python代码中将Azure DevOps变量用双引号包裹,Azure DevOps会在执行脚本前自动替换$(变量名)为实际值,生成合法的Python字符串:

import requests
import adal
import json

clientId = "$(app-id)"
tenantId = "$(app-id)"
clientSecret = "$(secret)"
subscription_id = "$(SUBSid)"

方法2:通过脚本参数传递变量(推荐用于敏感变量)

如果是调用外部Python脚本文件,建议通过参数传递变量,避免敏感信息暴露在代码中:

  1. 在Azure DevOps的Python脚本任务的脚本参数中填写:
--client-id $(app-id) --tenant-id $(app-id) --client-secret $(secret) --subscription-id $(SUBSid)
  1. 在Python脚本中用argparse接收参数:
import requests
import adal
import json
import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--client-id', required=True)
parser.add_argument('--tenant-id', required=True)
parser.add_argument('--client-secret', required=True)
parser.add_argument('--subscription-id', required=True)
args = parser.parse_args()

clientId = args.client_id
tenantId = args.tenant_id
clientSecret = args.client_secret
subscription_id = args.subscription_id

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:35:38