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

通过pm2启动的Python应用无法读取环境变量的问题排查

解决pm2启动Python脚本无法读取~/.bashrc环境变量的问题

原因说明

~/.bashrc仅在交互式登录Shell中加载,pm2启动的进程属于非交互式非登录Shell,因此无法读取该文件中的环境变量。

解决方法

方法一:将环境变量写入系统全局配置文件

  1. 编辑/etc/environment文件:
    sudo nano /etc/environment
    
  2. 在文件末尾添加(注意不要加export):
    KEY="123asd"
    
  3. 保存退出后,重启pm2进程:
    pm2 restart main
    
    若仍不生效,可重启服务器确保全局变量加载。

方法二:启动pm2时直接传递环境变量

临时启动传递

使用以下命令启动,直接携带环境变量:

pm2 start main.py --interpreter=python3 --env KEY="123asd"

永久配置到pm2生态文件

  1. 生成pm2配置文件:
    pm2 init
    
  2. 编辑生成的ecosystem.config.js,修改env字段:
    module.exports = {
      apps : [{
        name: "main",
        script: "./main.py",
        interpreter: "python3",
        env: {
          KEY: "123asd"
        }
      }]
    }
    
  3. 使用配置文件启动:
    pm2 start ecosystem.config.js
    

方法三:让pm2加载~/.bashrc后启动脚本

修改pm2启动命令,先加载~/.bashrc再执行Python脚本:

pm2 start main.py --interpreter=bash -- -c 'source ~/.bashrc && python3 main.py'

或者写入pm2配置文件永久生效:

module.exports = {
  apps : [{
    name: "main",
    script: "-c",
    args: "source ~/.bashrc && python3 main.py",
    interpreter: "bash"
  }]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:25:06