部署时如何在Python脚本中直接访问BitBucket变量?
解决BitBucket变量在Python脚本中无法读取的问题
核心代码修正
你的Python代码里os.getenv()的参数存在错误——不需要加$符号,os.getenv()接收的是环境变量的名称,而非Shell中引用变量的语法格式。
修正后的代码:
import os connection_parameters = { "account": os.getenv('account'), "user": os.getenv('user'), "password": os.getenv('password') }
确认BitBucket变量注入逻辑
BitBucket的Repository/Deployment Variables默认会自动注入到Pipeline步骤的环境变量中,既然你能在yml里用expr正常读取,说明变量已经存在于运行环境中。只要修正Python代码的参数,就能直接读取到变量值。
如果需要验证变量是否正常注入,可以在Pipeline的脚本步骤中临时添加调试输出(注意不要泄露敏感信息):
pipelines: default: - step: name: 运行Python脚本 script: - echo "调试:account变量值为 $account" # Shell语法需加$ - python main.py
额外排查点
- 确保BitBucket中配置的变量名称和Python代码中使用的完全一致(区分大小写)
- 敏感变量(如password)在BitBucket中会被自动隐藏,但不影响Python读取
- 若仍有问题,可在Python脚本中临时打印所有环境变量排查:
print(dict(os.environ))(测试后务必删除该行)
内容的提问来源于stack exchange,提问作者Nairda123
相关产品推荐
相关产品推荐

