Load environment variables from .env file in Python 3 [closed]
Closed as not constructive by Alexei on May 1, 2022 at 06:12
This question cannot be answered in a way that is helpful to anyone. It's not possible to learn something from possible answers, except for the solution for the specific problem of the asker.
This question was closed; new answers can no longer be added. Users with the reopen privilege may vote to reopen this question if it has been improved or closed incorrectly.
In Python 2, I was able to create a file named .env
within a project folder like so:
# .env
MY_ID=abc123
TOKEN=4567890
Then in a Python file in the same directory, I could read these variables like so:
# example.py
import os
id = os.environ["MY_ID"]
token = os.environ["TOKEN"]
This would work fine and load these variables from the file automatically when run.
In Python 3, this is not working (I get a KeyError
when trying to read the first environment variable),
So instead I tried to use the python-dotenv
package to load the variables like so:
# example.py
import os
from dotenv import load_dotenv
load_dotenv()
id = os.environ[“MY_ID”]
token = os.environ[“TOKEN”]
But this still results in a KeyError
.
Trying os.getenv()
instead of os.environ()
(as I saw in forum postings) results in TypeError: 'function' object is not subscriptable
.
Is there a simple way to read these variables as environment variables from a .env
file using this paradigm or do I need to implement a custom config in Python 3?
4 comment threads