我正在嘗試訪問 .env 檔案,但它總是回傳 None,這是我的檔案結構:
![.env 檔案總是使用 os.environ.get() 和 os.environ[] 回傳 None](https://img.uj5u.com/2021/12/29/3ca001add14040afb8f5e1e1bff1b464.png)
在我的 .env 檔案中,我寫道:
BOT_TOKEN=someHiddenText
CLIENT_ID=anotherHiddenText
CLIENT_SECRET=anotherHiddenText
我試過這樣做:
print(os.environ.get('BOT_TOKEN'))
print(os.environ['BOT_TOKEN'])
這兩種方法都回傳 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
uj5u.com熱心網友回復:
os.environ 只能獲取在您的主機上定義的變數(如 HOME、USER 等),而不能從檔案中獲取。您可以在運行腳本之前設定/匯出它們:
BOT_TOKEN="asdfghjkl" python script.py
export BOT_TOKEN="asdfghjkl"; python script.py
或者使用像 python-dotenv 這樣的 python 庫來為你的專案獲取 env 配置:
pip install python-dotenv
然后你可以加載你的 .env vars
from dotenv import dotenv_values
config = dotenv_values(".env")
print(config["BOT_TOKEN"])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/395891.html
