Para definir e obter variáveis de ambiente em Python basta usar o módulo os
:
import os# Set environment variablesos.environ = 'username'os.environ = 'secret'# Get environment variablesUSER = os.getenv('API_USER')PASSWORD = os.environ.get('API_PASSWORD')# Getting non-existent keysFOO = os.getenv('FOO') # NoneBAR = os.environ.get('BAR') # NoneBAZ = os.environ # KeyError: key does not exist.
Nota que usando getenv()
ou o método get()
em uma chave de dicionário retornará None
se a chave não existir. Entretanto, no exemplo com BAZ
, se você referenciar uma chave em um dicionário que não existe, ele levantará um KeyError
.
Ambiente variáveis são úteis quando você quer evitar credenciais de acesso de código rígido ou outras variáveis em código. Por exemplo, você pode precisar passar credenciais de API para um provedor de serviços de e-mail a fim de enviar notificações por e-mail, mas você não quer que essas credenciais sejam armazenadas em seu repositório de código. Ou talvez você precise que seu código funcione de forma ligeiramente diferente entre os seus ambientes de desenvolvimento, de preparação e de produção. Neste caso, você poderia passar em uma variável de ambiente para dizer à sua aplicação em que ambiente ela está rodando. Estes são casos típicos de uso para variáveis de ambiente.
Storing local env variables
Você deve escrever seu código Python para que ele seja capaz de acessar variáveis de ambiente a partir de qualquer ambiente em que esteja rodando. Este pode ser o seu ambiente virtual local que você está usando para desenvolvimento ou um serviço em que você está hospedando-o. Um pacote útil que simplifica este processo é o Python Decouple, é assim que você o usaria.
Instale primeiro o Python Decouple no seu ambiente Python local.
$ pip install python-decouple
Após instalado, crie um ficheiro .env
na raiz do seu projecto que poderá então abrir para adicionar as variáveis do seu ambiente.
$ touch .env # create a new .env file$ nano .env # open the .env file in the nano text editor
Pode então adicionar as variáveis do seu ambiente assim:
USER=alexKEY=hfy92kadHgkk29fahjsu3j922v9sjwaucahf
Depois guarde (WriteOut) o ficheiro e saia do nano. Suas variáveis de ambiente agora são armazenadas no seu arquivo .env
. Se você está usando git, lembre-se de adicionar .env
ao seu arquivo .gitignore
para que você não submeta este arquivo de segredos ao seu repositório de código.
Agora você tenha suas variáveis de ambiente armazenadas em um arquivo .env
, você pode acessá-las em seu código Python assim:
from decouple import configAPI_USERNAME = config('USER')API_KEY = config('KEY')
O benefício de usar algo como a abordagem acima é que quando você implanta sua aplicação em um serviço em nuvem, você pode definir suas variáveis de ambiente usando qualquer método ou interface que o provedor tenha e seu código Python ainda deve ser capaz de acessá-las. Note que é comum usar letras maiúsculas para nomes de constantes globais no seu código.
A maioria dos provedores de serviços em nuvem terá uma CLI ou interface web que permite configurar as variáveis de ambiente para os seus ambientes de encenação ou produção. Para orientação nesses casos, você precisará consultar a documentação deles sobre como configurar variáveis de ambiente ao usar seu serviço.
Junte-se à rede de desenvolvedores Able#5750>
Se você gostou deste post, você pode estar interessado na rede de desenvolvedores Able, um novo lugar para os desenvolvedores fazerem blogs e encontrarem empregos.