Pro nastavení a získání proměnných prostředí v Pythonu stačí použít modul 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.
Všimněte si, že použití getenv()
nebo metody get()
na slovníkový klíč vrátí None
, pokud klíč neexistuje. Pokud se však v příkladu s BAZ
odkazujete na klíč ve slovníku, který neexistuje, vyvolá to hlášení KeyError
.
Proměnné prostředí jsou užitečné, pokud se chcete vyhnout pevnému kódování přístupových údajů nebo jiných proměnných do kódu. Například můžete potřebovat předat pověření API poskytovatele e-mailových služeb, abyste mohli odesílat e-mailová oznámení, ale nechtěli byste, aby tato pověření byla uložena v úložišti kódu. Nebo možná potřebujete, aby váš kód fungoval v různých vývojových, stagingových a produkčních prostředích trochu jinak. V takovém případě byste mohli předat proměnnou prostředí, která by vaší aplikaci sdělila, v jakém prostředí běží. Toto jsou typické případy použití proměnných prostředí.
Uložení lokálních proměnných prostředí
Kód v jazyce Python byste měli psát tak, aby měl přístup k proměnným prostředí z jakéhokoli prostředí, ve kterém běží. Může to být buď vaše místní virtuální prostředí, které používáte pro vývoj, nebo služba, na které jej hostujete. Užitečný balíček, který tento proces zjednodušuje, je Python Decouple, takto byste ho použili:
Nejprve nainstalujte Python Decouple do svého lokálního prostředí Pythonu.
$ pip install python-decouple
Po instalaci vytvořte v kořenovém adresáři svého projektu soubor .env
, který pak můžete otevřít a přidat do něj proměnné prostředí.
$ touch .env # create a new .env file$ nano .env # open the .env file in the nano text editor
Proměnné prostředí pak můžete přidat takto:
USER=alexKEY=hfy92kadHgkk29fahjsu3j922v9sjwaucahf
Poté soubor uložte (WriteOut) a ukončete nano. Vaše proměnné prostředí jsou nyní uloženy v souboru .env
. Pokud používáte git, nezapomeňte přidat .env
do souboru .gitignore
, abyste tento soubor s tajemstvím neodevzdali do úložiště kódu.
Teď, když máte své proměnné prostředí uložené v souboru .env
, můžete k nim ve svém kódu Pythonu přistupovat takto:
from decouple import configAPI_USERNAME = config('USER')API_KEY = config('KEY')
Výhodou použití něčeho podobného výše uvedenému přístupu je, že když svou aplikaci nasadíte na cloudovou službu, můžete své proměnné prostředí nastavit pomocí jakékoli metody nebo rozhraní, které poskytovatel má, a váš kód Pythonu by k nim měl mít stále přístup. Všimněte si, že je běžnou konvencí používat velká písmena pro názvy globálních konstant ve vašem kódu.
Většina poskytovatelů cloudových služeb bude mít CLI nebo webové rozhraní, které vám umožní nastavit proměnné prostředí pro vaše staging nebo produkční prostředí. Pro návod v těchto případech se budete muset podívat do jejich dokumentace, jak nastavit proměnné prostředí při používání jejich služby.
Připojte se k síti Able Developer Network
Pokud se vám tento příspěvek líbil, možná vás bude zajímat síť Able Developer Network, nové místo pro vývojáře, kde mohou blogovat a hledat práci.