I find I have to tell developers (sometimes even developers with a few years’ experience) again and again how to properly manage environment variables - so I write this simple post so that I can just send a link.
Don’ts: DO NOT ever write the keys in your code - you will forget and push the keys to your repo.
Do one of the followings (I use OPENAI_API_KEY as an example and my preferred way is method 2):
export commandexport OPENAI_API_KEY=sk-xxxxxxxTest that key is correctly set as an environment variable
import os
if os.getenv("OPENAI_API_KEY") is not None:
print("OPENAI_API_KEY is ready")
else:
print("OPENAI_API_KEY environment variable not found")
.env filecreate a .env file in the root of the project folder to store the environment variables - this file is gitignored by default (or add this file to .gitignore)
create requirements.txt and include packages to install by putting the following lines in the file (two packages as examples):
openai
python-dotenv
create a virtual environment and install the packages specified in requirements.txt:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
load keys from .env file:
import openai
import os
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv('OPENAI_API_KEY')
Method 2 above is my preferred way especially when you have many environment variables to manage.
PS. The featured image for this post is generated using HiddenArt tool from Takin.ai.