Hur man ställer in och hämtar miljövariabler i Python

För att ställa in och hämta miljövariabler i Python kan du använda modulen 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.

Observera att om du använder getenv() eller metoden get() på en ordboksnyckel så returnerar du None om nyckeln inte finns. I exemplet med BAZ, om du refererar till en nyckel i ett lexikon som inte finns kommer det dock att ge en KeyError.

Miljövariabler är användbara när du vill undvika hårdkodning av åtkomstuppgifter eller andra variabler i koden. Du kan till exempel behöva skicka API-uppgifter till en e-postleverantör för att kunna skicka e-postmeddelanden, men du vill inte att dessa uppgifter ska lagras i ditt kodförråd. Eller så kanske du behöver att din kod fungerar något annorlunda mellan dina utvecklings-, staging- och produktionsmiljöer. I det fallet kan du skicka in en miljövariabel för att tala om för din applikation vilken miljö den körs i. Detta är typiska användningsområden för miljövariabler.

Lagring av lokala env-variabler

Du bör skriva din Python-kod så att den kan få tillgång till miljövariabler från vilken miljö den än körs i. Detta kan vara antingen din lokala virtuella miljö som du använder för utveckling eller en tjänst som du är värd för den på. Ett användbart paket som förenklar den här processen är Python Decouple, så här kan du använda det:

Installera först Python Decouple i din lokala Pythonmiljö.

$ pip install python-decouple

När det är installerat skapar du en .env fil i roten av ditt projekt som du sedan kan öppna för att lägga till dina miljövariabler.

$ touch .env # create a new .env file$ nano .env # open the .env file in the nano text editor

Du kan sedan lägga till dina miljövariabler så här:

USER=alexKEY=hfy92kadHgkk29fahjsu3j922v9sjwaucahf

Spara sedan (WriteOut) filen och avsluta nano. Dina miljövariabler är nu lagrade i din .env-fil. Om du använder git, kom ihåg att lägga till .env i din .gitignore-fil så att du inte lägger in denna fil med hemligheter i ditt kodförråd.

Nu när du har dina miljövariabler lagrade i en .env-fil kan du komma åt dem i din Python-kod på följande sätt:

from decouple import configAPI_USERNAME = config('USER')API_KEY = config('KEY')

Fördelen med att använda något som liknar tillvägagångssättet ovan är att när du distribuerar din applikation till en molntjänst kan du ställa in dina miljövariabler med hjälp av vilken metod eller vilket gränssnitt som helst som leverantören har, och din Python-kod bör fortfarande kunna komma åt dem. Observera att det är en vanlig konvention att använda stora bokstäver för namn på globala konstanter i din kod.

De flesta leverantörer av molntjänster har ett CLI- eller webbgränssnitt som låter dig konfigurera miljövariablerna för dina staging- eller produktionsmiljöer. För vägledning i dessa fall behöver du hänvisa till deras dokumentation om hur du ställer in miljövariabler när du använder deras tjänst.

Join the Able Developer Network

Om du gillade det här inlägget kanske du är intresserad av Able developer network, en ny plats för utvecklare att blogga och hitta jobb.

Lämna ett svar

Din e-postadress kommer inte publiceras.