-
Notifications
You must be signed in to change notification settings - Fork 467
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
version24.9.2
(installed viaminiconda
)uv
version0.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