theskumar / theskumar/python-dotenv

.env not found with using python-dotenv==1.1.1 installed through uv pip install

Open
#574 1 comment 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
8.9k
Forks
581
PR merge metrics
No merged PRs in 30d

Description

dev-environment.yml
dev-environment-with-pip.yml
README.md
show_dotenv_issue.py

Python dotenv issue

System used for issue:

  • WSL2 on Windows 11 Enterprise with Ubuntu 22.04

Requirements:

  • conda version 24.9.2 (installed via miniconda)
  • uv version 0.8.9

Description of the issue:

When running a python script that uses the dotenv package to load environment variables,
depending on the python-dotenv version and using uv or not the .env-file is not found through load_dotenv().

Definition of the folder and files

Folder scructure should be as follows:

├── dev-environment-with-pip.yml
├── dev-environment.yml
├── .env
└── show_dotenv_issue.py

The files should contain the following content:

dev-environment.yml

name: python_dotenv_issue
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.11.13

dev-environment-with-pip.yml

name: python_dotenv_issue_with_pip
channels:
  - conda-forge
  - defaults
dependencies:
  - python=3.11.13
  - pip=25.2

.env

MY_VAR1=my_value1
MY_VAR2=my_value2

show_dotenv_issue.py

import os

from dotenv import load_dotenv

load_dotenv()


if __name__ == "__main__":
    print(os.getenv("MY_VAR1"))
    print(os.getenv("MY_VAR2"))

Observations

There are three situations to point out:

1. Install python-dotenv==1.1.1 with uv pip install without pip==25.2 (does not work)

Run:

conda deactivate
conda env create -f dev-environment.yml
conda activate python_dotenv_issue
uv pip install python-dotenv==1.1.1
python -m show_dotenv_issue

You expect that the script prints

my_value1
my_value2

but it prints:

None
None
2. Install python-dotenv==1.1.1 with pip install (works)

Run:

conda deactivate
conda env create -f dev-environment-with-pip.yml
conda activate python_dotenv_issue_with_pip
pip install python-dotenv==1.1.1
python -m show_dotenv_issue

The script prints as expected:

my_value1
my_value2
3. Install python-dotenv==1.1.0 with uv pip install (works)

Remove the earlier conda env python_dotenv_issue:

conda deactivate
conda env remove -n python_dotenv_issue 

Run:

conda env create -f dev-environment.yml
conda activate python_dotenv_issue
uv pip install python-dotenv==1.1.0
python -m show_dotenv_issue

The script prints as expected:

my_value1
my_value2

Conclusion

There seems to be an issue with python-dotenv==1.1.1 in combination with uv pip install when pip is not installed.
As there is no problem with python-dotenv==1.1.0, we suspect an issue in version 1.1.1. However, we have not been able
to point out what exactly could cause this.

show_dotenv_issue.py
dev-environment.yml
dev-environment-with-pip.yml
README.md

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the three setups from the issue using dev-environment.yml, dev-environment-with-pip.yml, and show_dotenv_issue.py, then inspect how load_dotenv() locates .env under python-dotenv 1.1.1. Compare the 1.1.0 and 1.1.1 behavior with uv and pip; done means the cause is identified and the reported environment-variable loading behavior is fixed or clearly explained.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.