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

如何在heroku ps:exec进入dyno后设置特定环境配置变量?

解决Heroku ps:exec中加载应用配置变量的问题(Python项目适用)

方法1:加载所有配置变量到当前会话

Heroku dyno的主进程(通常PID为1)已经包含了所有通过heroku config:set设置的变量,你可以通过系统的/proc文件系统读取并加载到exec会话中:

进入heroku ps:exec后,执行以下命令:

# 提取主进程环境变量并转为shell可识别的格式,加载到当前会话
cat /proc/1/environ | tr '\0' '\n' > .env.tmp && source .env.tmp && rm .env.tmp

执行完后,你可以用env命令验证变量是否已加载,之后直接运行Python脚本或命令即可正常读取这些配置变量。

方法2:仅加载指定的配置变量

如果只需要部分变量,无需加载全部,可以单独提取目标变量并注入到命令环境:
比如要加载DATABASE_URL和SECRET_KEY,执行:

DATABASE_URL=$(grep -z DATABASE_URL /proc/1/environ | tr '\0' '\n' | cut -d= -f2-) \
SECRET_KEY=$(grep -z SECRET_KEY /proc/1/environ | tr '\0' '\n' | cut -d= -f2-) \
python your_script.py

你的Python代码可以直接通过os.environ.get("DATABASE_URL")这类方式读取到对应变量。

方法3:结合python-dotenv使用

如果你的项目已经依赖python-dotenv库,可以先生成本地.env文件再让脚本自动加载:

# 将主进程的所有环境变量导出为.env文件
cat /proc/1/environ | tr '\0' '\n' > .env

确保你的Python脚本中包含from dotenv import load_dotenv; load_dotenv()的调用,运行脚本时就会自动加载这些配置变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:02:10