Jak ustawić i uzyskać zmienne środowiskowe w Pythonie

Aby ustawić i uzyskać zmienne środowiskowe w Pythonie, możesz po prostu użyć modułu 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.

Zauważ, że użycie metody getenv() lub get() na kluczu słownika zwróci None, jeśli klucz nie istnieje. Jednak w przykładzie z BAZ, jeśli odwołasz się do klucza w słowniku, który nie istnieje, podniesie to KeyError.

Zmienne środowiskowe są przydatne, gdy chcesz uniknąć twardego kodowania poświadczeń dostępu lub innych zmiennych w kodzie. Na przykład, możesz potrzebować przekazać poświadczenia API dla dostawcy usług poczty elektronicznej, aby wysyłać powiadomienia e-mail, ale nie chcesz, aby te poświadczenia były przechowywane w twoim repozytorium kodu. A może potrzebujesz, aby Twój kod działał nieco inaczej pomiędzy środowiskiem deweloperskim, inscenizacyjnym i produkcyjnym. W takim przypadku możesz przekazać zmienną środowiskową, która powie Twojej aplikacji w jakim środowisku jest uruchomiona. Są to typowe przypadki użycia zmiennych środowiskowych.

Przechowywanie lokalnych zmiennych środowiskowych

Powinieneś napisać swój kod Pythona tak, aby był on w stanie uzyskać dostęp do zmiennych środowiskowych z dowolnego środowiska, w którym jest uruchomiony. Może to być zarówno twoje lokalne środowisko wirtualne, którego używasz do rozwoju, jak i usługa, na której go hostujesz. Użytecznym pakietem, który upraszcza ten proces, jest Python Decouple, oto jak można go użyć.

Najpierw zainstaluj Python Decouple w swoim lokalnym środowisku Pythona.

$ pip install python-decouple

Po zainstalowaniu utwórz plik .env w korzeniu projektu, który możesz następnie otworzyć, aby dodać swoje zmienne środowiskowe.

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

Możesz wtedy dodać swoje zmienne środowiskowe w następujący sposób:

USER=alexKEY=hfy92kadHgkk29fahjsu3j922v9sjwaucahf

Następnie zapisz (WriteOut) plik i zamknij nano. Twoje zmienne środowiskowe są teraz przechowywane w twoim pliku .env. Jeśli używasz git, pamiętaj, aby dodać .env do swojego pliku .gitignore, aby nie popełnić tego pliku sekretów do swojego repozytorium kodu.

Teraz, gdy masz swoje zmienne środowiskowe przechowywane w pliku .env, możesz uzyskać do nich dostęp w swoim kodzie Pythona w następujący sposób:

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

Zaletą korzystania z czegoś takiego jak powyższe podejście jest to, że kiedy wdrażasz swoją aplikację do usługi w chmurze, możesz ustawić swoje zmienne środowiskowe za pomocą dowolnej metody lub interfejsu dostawcy, a twój kod Pythona powinien nadal być w stanie uzyskać do nich dostęp. Zauważ, że powszechną konwencją jest używanie wielkich liter dla nazw stałych globalnych w twoim kodzie.

Większość dostawców usług w chmurze będzie miała CLI lub interfejs WWW, który pozwala skonfigurować zmienne środowiskowe dla środowisk inscenizacji lub produkcji. Aby uzyskać wskazówki w tych przypadkach, należy zapoznać się z ich dokumentacją dotyczącą sposobu ustawiania zmiennych środowiskowych podczas korzystania z ich usług.

Dołącz do Able Developer Network

Jeśli podobał Ci się ten post, możesz być zainteresowany siecią deweloperów Able, nowym miejscem dla deweloperów do blogowania i znajdowania pracy.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.