dotenv em Python

Shivam Arora 10 outubro 2023
dotenv em Python

Este artigo irá explicar o significado e o uso de dotenv em Python.

O arquivo .env é um arquivo individual que contém os valores-chave descritos acima para todas as variáveis ​​ambientais necessárias em sua aplicação. O arquivo é armazenado localmente sem ser salvo no controle de origem, portanto, você não está colocando informações potencialmente confidenciais em risco.

O dotenv é usado para ler o par de chave e valor do arquivo .env e adicioná-lo à variável de ambiente. Podemos usá-lo para gerenciar as configurações do aplicativo durante as fases de desenvolvimento e produção, usando seu princípio de 12 fatores.

As variáveis ​​de ambiente são estabelecidas em um arquivo semelhante ao UNIX dentro do diretório do projeto Python usando o módulo env.

Para começar com o arquivo .env, primeiro precisamos instalar a biblioteca dotenv.

pip install python-dotenv

Usando dotenv, nosso aplicativo pode carregar a configuração de um arquivo .env quando presente (por exemplo, durante o desenvolvimento) enquanto retém a configuração baseada no ambiente.

Veja o seguinte exemplo.

from dotenv import load_dotenv

config = load_dotenv(".env")

No exemplo acima, usamos a função load_dotenv(). A função dotenv_values() funciona de forma semelhante a load_dotenv. Ele retorna um dicionário com valores analisados ​​do ambiente.

Por exemplo,

from dotenv import dotenv_values

config = dotenv_values(".env")

Também podemos carregar as variáveis ​​de ambiente de uma rede em vez de um sistema de arquivos. Para isso, podemos usar a função StringIO() do pacote io para criar um objeto de fluxo.

Veja o seguinte código.

from io import StringIO
from dotenv import load_dotenv

config = StringIO("USER=abc\nEMAIL=abc@example.org")
load_dotenv(stream=config)

Também podemos usar a interface CLI dotenv para manipular o arquivo .env sem abri-lo manualmente.

Veja os comandos abaixo.

pip install "python-dotenv[cli]"
dotenv set USER abc
dotenv set EMAIL abc@example.org
dotenv run -- python abc.py

Artigo relacionado - Python Environment