首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从pm2启动的Python应用程序中不可见的环境变量

从pm2启动的Python应用程序中不可见的环境变量
EN

Stack Overflow用户
提问于 2022-08-13 17:44:06
回答 1查看 129关注 0票数 1

我第一次使用服务器。它有Ubuntu 18.04。

我从未使用过该操作系统,但经过一些指导之后,我设法使我的代码正常工作,但环境变量除外。

在文件末尾的~/.bashrc中,我添加了export KEY="123asd"

然后我重新装上了终端。

我检查了我的环境变量是否是通过printenv KEY加载的,它显示了正确的值。

在我的main.py中有:

代码语言:javascript
复制
import os
import telebot

API_KEY = os.getenv("KEY")
bot = telebot.TeleBot(API_KEY)

当我使用pm2 start main.py --interpreter=python3运行它时,日志中有一个错误:

代码语言:javascript
复制
raise Exception('Bot token is not defined')
Exception: Bot token is not defined

如果我正确理解,这意味着API_KEYNone,所以环境变量有一个问题。

我尝试给API_KEY一个实际值,而不是一个环境变量,它运行得很好。

那么,我还需要做什么才能正确地使用环境变量呢?

EN

回答 1

Stack Overflow用户

发布于 2022-08-14 20:00:08

我找错地方了。

如果我想使用pm2,那么我需要创建一个ecosystem.config.js文件并给它我的变量。如下所示:

代码语言:javascript
复制
module.exports = {
  apps : [{
          name: "main.py",
    env: {
        KEY: "123asd"
    }
  }]
}

它能工作,只是我不确定它是否正确,因为我的main.py有超过一个进程(一个在线,另一个错误)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73346468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档