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

Linux环境下如何在Makefile规则中正确设置环境变量?

解决Makefile环境变量不生效的问题

你的Makefile写法存在核心问题:Makefile里每一行命令都会启动独立的Shell进程,前几行设置的环境变量只在各自的进程内有效,执行Python脚本的进程根本读不到这些变量。

给你几个可行的修正方案:

方案1:直接在命令前赋值环境变量(最简洁)

把环境变量直接写在Python命令前,变量会仅对这条命令生效,无需export:

entrypoint-job-prod: 
    AWS_PROFILE_NAME=amx-prod ENV=PROD python ./entry_point/entry_point.py

如果要换行提升可读性,用反斜杠连接:

entrypoint-job-prod: 
    AWS_PROFILE_NAME=amx-prod \
    ENV=PROD \
    python ./entry_point/entry_point.py

方案2:让所有命令共享同一个Shell进程

用分号分隔命令,或用括号包裹,确保所有命令在同一个Shell里执行,环境变量就能正常传递:

entrypoint-job-prod: 
    export AWS_PROFILE_NAME=amx-prod; export ENV=PROD; python ./entry_point/entry_point.py

换行写法:

entrypoint-job-prod: 
    export AWS_PROFILE_NAME=amx-prod; \
    export ENV=PROD; \
    python ./entry_point/entry_point.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:25:31