Ir para o conteúdo

Variáveis de Ambiente

Dica

Se você já sabe o que são "variáveis de ambiente" e como usá-las, pode pular esta seção.

Uma variável de ambiente (também conhecida como "env var") é uma variável que existe fora do código Python, no sistema operacional, e pode ser lida pelo seu código Python (ou por outros programas também).

Variáveis de ambiente podem ser úteis para lidar com configurações do aplicativo, como parte da instalação do Python, etc.

Criar e Usar Variáveis de Ambiente

Você pode criar e usar variáveis de ambiente no shell (terminal), sem precisar do Python:

// Você pode criar uma variável de ambiente MY_NAME com
$ export MY_NAME="Wade Wilson"

// Então você pode usá-la com outros programas, como
$ echo "Hello $MY_NAME"

Hello Wade Wilson
// Criar uma variável de ambiente MY_NAME
$ $Env:MY_NAME = "Wade Wilson"

// Usá-la com outros programas, como
$ echo "Hello $Env:MY_NAME"

Hello Wade Wilson

Ler Variáveis de Ambiente no Python

Você também pode criar variáveis de ambiente fora do Python, no terminal (ou com qualquer outro método) e depois lê-las no Python.

Por exemplo, você poderia ter um arquivo main.py com:

import os

name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")

Dica

O segundo argumento para os.getenv() é o valor padrão a ser retornado.

Se não for fornecido, é None por padrão, Aqui fornecemos "World" como o valor padrão a ser usado.

Então você poderia chamar esse programa Python:

// Aqui ainda não definimos a variável de ambiente
$ python main.py

// Como não definimos a variável de ambiente, obtemos o valor padrão

Hello World from Python

// Mas se criarmos uma variável de ambiente primeiro
$ export MY_NAME="Wade Wilson"

// E então chamar o programa novamente
$ python main.py

// Agora ele pode ler a variável de ambiente

Hello Wade Wilson from Python
// Aqui ainda não definimos a variável de ambiente
$ python main.py

// Como não definimos a variável de ambiente, obtemos o valor padrão

Hello World from Python

// Mas se criarmos uma variável de ambiente primeiro
$ $Env:MY_NAME = "Wade Wilson"

// E então chamar o programa novamente
$ python main.py

// Agora ele pode ler a variável de ambiente

Hello Wade Wilson from Python

Como as variáveis de ambiente podem ser definidas fora do código, mas podem ser lidas pelo código e não precisam ser armazenadas (com versão no git) com o restante dos arquivos, é comum usá-las para configurações ou definições.

Você também pode criar uma variável de ambiente apenas para uma invocação específica do programa, que só está disponível para aquele programa e apenas pela duração dele.

Para fazer isso, crie-a na mesma linha, antes do próprio programa:

// Criar uma variável de ambiente MY_NAME para esta chamada de programa
$ MY_NAME="Wade Wilson" python main.py

// Agora ele pode ler a variável de ambiente

Hello Wade Wilson from Python

// A variável de ambiente não existe mais depois
$ python main.py

Hello World from Python

Dica

Você pode ler mais sobre isso em The Twelve-Factor App: Config.

Tipos e Validação

Essas variáveis de ambiente só podem lidar com strings de texto, pois são externas ao Python e precisam ser compatíveis com outros programas e com o resto do sistema (e até mesmo com diferentes sistemas operacionais, como Linux, Windows, macOS).

Isso significa que qualquer valor lido em Python de uma variável de ambiente será uma str, e qualquer conversão para um tipo diferente ou qualquer validação precisa ser feita no código.

Você aprenderá mais sobre como usar variáveis de ambiente para lidar com configurações do aplicativo no Guia do Usuário Avançado - Configurações e Variáveis de Ambiente.

Variável de Ambiente PATH

Existe uma variável de ambiente especial chamada PATH que é usada pelos sistemas operacionais (Linux, macOS, Windows) para encontrar programas para executar.

O valor da variável PATH é uma longa string composta por diretórios separados por dois pontos : no Linux e macOS, e por ponto e vírgula ; no Windows.

Por exemplo, a variável de ambiente PATH poderia ter esta aparência:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Isso significa que o sistema deve procurar programas nos diretórios:

  • /usr/local/bin
  • /usr/bin
  • /bin
  • /usr/sbin
  • /sbin
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32

Isso significa que o sistema deve procurar programas nos diretórios:

  • C:\Program Files\Python312\Scripts
  • C:\Program Files\Python312
  • C:\Windows\System32

Quando você digita um comando no terminal, o sistema operacional procura o programa em cada um dos diretórios listados na variável de ambiente PATH.

Por exemplo, quando você digita python no terminal, o sistema operacional procura um programa chamado python no primeiro diretório dessa lista.

Se ele o encontrar, então ele o usará. Caso contrário, ele continua procurando nos outros diretórios.

Instalando o Python e Atualizando o PATH

Durante a instalação do Python, você pode ser questionado sobre a atualização da variável de ambiente PATH.

Vamos supor que você instale o Python e ele fique em um diretório /opt/custompython/bin.

Se você concordar em atualizar a variável de ambiente PATH, o instalador adicionará /opt/custompython/bin para a variável de ambiente PATH.

Poderia parecer assim:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin

Dessa forma, ao digitar python no terminal, o sistema encontrará o programa Python em /opt/custompython/bin (último diretório) e o utilizará.

Digamos que você instala o Python e ele acaba em um diretório C:\opt\custompython\bin.

Se você disser sim para atualizar a variável de ambiente PATH, o instalador adicionará C:\opt\custompython\bin à variável de ambiente PATH.

C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin

Dessa forma, quando você digitar python no terminal, o sistema encontrará o programa Python em C:\opt\custompython\bin (o último diretório) e o utilizará.

Então, se você digitar:

$ python

O sistema encontrará o programa python em /opt/custompython/bin e o executará.

Seria aproximadamente equivalente a digitar:

$ /opt/custompython/bin/python

O sistema encontrará o programa python em C:\opt\custompython\bin\python e o executará.

Seria aproximadamente equivalente a digitar:

$ C:\opt\custompython\bin\python

Essas informações serão úteis ao aprender sobre Ambientes Virtuais.

Conclusão

Com isso, você deve ter uma compreensão básica do que são variáveis ​​de ambiente e como usá-las em Python.

Você também pode ler mais sobre elas na Wikipedia para Variáveis ​​de Ambiente.

Em muitos casos, não é muito óbvio como as variáveis ​​de ambiente seriam úteis e aplicáveis ​​imediatamente. Mas elas continuam aparecendo em muitos cenários diferentes quando você está desenvolvendo, então é bom saber sobre elas.

Por exemplo, você precisará dessas informações na próxima seção, sobre Ambientes Virtuais.