如何解决KeyError 与 os.environ[] 从 .env 文件访问变量
我正在尝试构建一个 slackbot 并从单独的 .env 文件中检索 slack 令牌。当我运行它时,我被抛出一个如下所示的错误:
raise KeyError(key) from None
KeyError: 'SLACK_TOKEN'
机器人的代码 (ShoppingListBot.py) 在这里:
import slack
import os
from pathlib import Path
from dotenv import load_dotenv
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)
client = slack.WebClient(token=os.environ["SLACK_TOKEN"])
.env 文件 (.env) 的代码在这里:
SLACK_TOKEN="xoxb-1691324762768-1693412284260-RdP0ZQUaQxD9j9mtLlwfNMbD"
解决方法
您应该使用 os.environ["SLACK_TOKEN"]
而不是 os.getenv("SLACK_TOKEN")
。
来自 docs(强调我的):
此映射在第一次导入 os 模块时捕获,通常在 Python 启动期间作为处理 site.py 的一部分进行捕获。在此时间之后对环境所做的更改不会反映在 os.environ 中,除非直接修改 os.environ 所做的更改。
或者在override=True
中使用load_dotenv()
我通常使用 YAML 文件,但根据 pip python-dotenv
,您似乎应该使用os.getenv("SLACK_TOKEN")
而不是 os.environ["SLACK_TOKEN"]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。