我正在尝试构建一个 slackbot 并从一个单独的 .env 文件中检索 slack token 。当我运行它时,会抛出如下所示的错误:
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.getenv("SLACK_TOKEN")
而不是 os.environ["SLACK_TOKEN"]
。
来自docs (强调我的):
This mapping is captured the first time the os module is imported, typically during Python startup as part of processing site.py. Changes to the environment made after this time are not reflected in os.environ, except for changes made by modifying os.environ directly.
或者在load_dotenv()
中使用override=True
关于python - os.environ[] 从 .env 文件访问变量的 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65854207/