Python脚本引入GitHub Secrets遇KeyError?求解决方案
解决GitHub Actions中Python无法读取仓库密钥的问题
你的问题根源很简单:Workflow里定义的环境变量名和Python代码里读取的变量名不一致。
具体问题
在你的Workflow配置中,start bot步骤里设置的环境变量叫TOKEN:
env: TOKEN: ${{ secrets.SECRET }}
但你的Python代码里却在尝试读取名为SECRET的环境变量:
SECRET = os.environ['SECRET']
两个名字对不上,Python自然找不到对应的变量,就抛出了KeyError。
两种解决办法
选其中一种就行:
办法一:修改Workflow的环境变量名
把Workflow里的TOKEN改成SECRET,和Python代码里的变量名统一:
- name: start bot env: SECRET: ${{ secrets.SECRET }} # 这里改成SECRET run: python test.py
办法二:修改Python代码的读取变量名
让Python读取Workflow里定义的TOKEN变量:
import os SECRET = os.environ['TOKEN'] # 这里改成TOKEN if SECRET == "TrustNo1": print("No one can be trusted") print(SECRET)
额外小建议
为了避免以后因为环境变量不存在导致脚本崩溃,可以用os.getenv()替代直接取os.environ[key],它允许设置默认值:
SECRET = os.getenv('SECRET', '') # 如果变量不存在,返回空字符串
内容的提问来源于stack exchange,提问作者Morris van den Bergh
相关产品推荐
相关产品推荐

