Heroku部署机器人修改环境变量出现SyntaxError报错如何解决?
问题解决说明
1 语法错误修复
你遇到的语法错误是因为os.environ是Python提供的类字典对象,而非可调用函数。你使用圆括号()访问环境变量时,Python会将其识别为函数调用,不允许对函数调用结果赋值,因此抛出SyntaxError: cannot assign to function call错误。
正确的修改方式是将圆括号替换为类字典访问使用的方括号[],同时可以增加默认值兼容环境变量不存在的场景,修改后的代码如下:
import os # 第二个参数为默认值,避免GAMES_PLAYED未配置时报错 gamesPlayed = os.environ.get("GAMES_PLAYED", 0) gamesPlayed = int(gamesPlayed) + 1 # 用方括号修改环境变量值 os.environ["GAMES_PLAYED"] = str(gamesPlayed) print(gamesPlayed)
2 Heroku环境变量的持久化说明
你需要注意:在代码运行时修改os.environ的取值,仅对当前运行的进程有效,不会同步更新到Heroku的配置中。一旦应用重启、扩容或重新部署,GAMES_PLAYED的取值会恢复为你在Heroku后台配置的初始值。
如果你需要持久化保存游戏次数,有两种常见方案:
- 将统计数据存储在Heroku挂载的数据库、Redis等存储服务中
- 调用Heroku平台的配置API,在代码中主动更新应用的环境变量配置
内容的提问来源于stack exchange,提问作者Evan Dilkes
相关产品推荐
相关产品推荐

