.env 文件总是使用 os.environ.get() 和 os.environ[] 返回 None
.env file always returning None using os.environ.get() and os.environ[]
我正在尝试访问 .env 文件,但它总是 returns None,这是我的文件结构:
在我的 .env 文件中,我写了:
BOT_TOKEN=someHiddenText
CLIENT_ID=anotherHiddenText
CLIENT_SECRET=anotherHiddenText
我试过:
print(os.environ.get('BOT_TOKEN'))
print(os.environ['BOT_TOKEN'])
而且这两种方法return None,那么我这里做错了什么?任何答复将不胜感激!这也是错误消息,以防万一它有用。
(environment) PS C:\Users\Steven Kristian\Documents\Portfolio\Tohru> heroku local worker
[OKAY] Loaded ENV .env File as KEY=VALUE Format
11:48:10 worker.1 | None
11:48:10 worker.1 | None
11:48:10 worker.1 | Traceback (most recent call last):
11:48:10 worker.1 | File "app.py", line 16, in <module>
11:48:10 worker.1 | TOKEN = os.environ['BOT_TOKEN']
11:48:10 worker.1 | File "C:\Users\Steven Kristian\AppData\Local\Programs\Python\Python38\lib\os.py", line 673, in __getitem__
11:48:10 worker.1 | raise KeyError(key) from None
11:48:10 worker.1 | KeyError: 'BOT_TOKEN'
[DONE] Killing all processes with signal SIGINT
11:48:10 worker.1 Exited with exit code null
os.environ 只能获取在您的主机上定义的变量(如 HOME、USER 等),而不能从文件中获取。你可以 set/export 他们在你 运行 你的脚本之前:
BOT_TOKEN="asdfghjkl" python script.py
export BOT_TOKEN="asdfghjkl"; python script.py
或使用 python 库,如 python-dotenv 来为您的项目获取环境配置:
pip install python-dotenv
然后你可以通过
加载你的 .env 变量
from dotenv import dotenv_values
config = dotenv_values(".env")
print(config["BOT_TOKEN"])
我正在尝试访问 .env 文件,但它总是 returns None,这是我的文件结构:
在我的 .env 文件中,我写了:
BOT_TOKEN=someHiddenText
CLIENT_ID=anotherHiddenText
CLIENT_SECRET=anotherHiddenText
我试过:
print(os.environ.get('BOT_TOKEN'))
print(os.environ['BOT_TOKEN'])
而且这两种方法return None,那么我这里做错了什么?任何答复将不胜感激!这也是错误消息,以防万一它有用。
(environment) PS C:\Users\Steven Kristian\Documents\Portfolio\Tohru> heroku local worker
[OKAY] Loaded ENV .env File as KEY=VALUE Format
11:48:10 worker.1 | None
11:48:10 worker.1 | None
11:48:10 worker.1 | Traceback (most recent call last):
11:48:10 worker.1 | File "app.py", line 16, in <module>
11:48:10 worker.1 | TOKEN = os.environ['BOT_TOKEN']
11:48:10 worker.1 | File "C:\Users\Steven Kristian\AppData\Local\Programs\Python\Python38\lib\os.py", line 673, in __getitem__
11:48:10 worker.1 | raise KeyError(key) from None
11:48:10 worker.1 | KeyError: 'BOT_TOKEN'
[DONE] Killing all processes with signal SIGINT
11:48:10 worker.1 Exited with exit code null
os.environ 只能获取在您的主机上定义的变量(如 HOME、USER 等),而不能从文件中获取。你可以 set/export 他们在你 运行 你的脚本之前:
BOT_TOKEN="asdfghjkl" python script.py
export BOT_TOKEN="asdfghjkl"; python script.py
或使用 python 库,如 python-dotenv 来为您的项目获取环境配置:
pip install python-dotenv
然后你可以通过
加载你的 .env 变量from dotenv import dotenv_values
config = dotenv_values(".env")
print(config["BOT_TOKEN"])