Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Load environment variables from .env file in Python 3 [closed]

+4
−1

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?

Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

4 comment threads

Closing (2 comments)
I've made a test in Python 3, and python-dotenv worked fine: ```python import os from dotenv imp... (2 comments)
Note that with `getenv` you need to use parentheses `()` instead of square brackets `[]`. Doing so s... (2 comments)
Possible workaround (1 comment)

0 answers