etc./StackOverFlow

환경 변수 값에 액세스하는 방법

청렴결백한 만능 재주꾼 2021. 11. 13. 00:14
반응형

질문자 :Amit Yadav


내 Python 애플리케이션에서 액세스하려는 환경 변수를 설정했습니다. 그 가치를 어떻게 얻을 수 있습니까?



환경 변수는 os.environ을 통해 액세스합니다.

 import os print(os.environ['HOME'])

또는 다음을 사용하여 모든 환경 변수 목록을 볼 수 있습니다.

 os.environ

때로는 전체 목록을 확인해야 할 수도 있습니다!

 # using get will return `None` if a key is not present rather than raise a `KeyError` print(os.environ.get('KEY_THAT_MIGHT_EXIST')) # os.getenv is equivalent, and can also give a default value instead of `None` print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))

Windows의 Python 기본 설치 위치는 C:\Python 입니다. 파이썬을 실행하는 동안 알아내려면 다음을 수행할 수 있습니다.

 import sys print(sys.prefix)

Rod

키가 있는지 확인하려면( True 또는 False 반환)

 'HOME' in os.environ

키를 인쇄할 때 get() 사용할 수도 있습니다. 기본값을 사용하려는 경우 유용합니다.

 print(os.environ.get('HOME', '/home/username/'))

여기서 /home/username/ 은 기본값입니다.


lgriffiths

원래 질문(첫 번째 부분)은 "파이썬에서 환경 변수를 확인하는 방법"이었습니다.

$FOO가 설정되었는지 확인하는 방법은 다음과 같습니다.

 try: os.environ["FOO"] except KeyError: print "Please set the environment variable FOO" sys.exit(1)

Scott C Wilson

다음을 사용하여 환경 변수에 액세스할 수 있습니다.

 import os print os.environ

PYTHONPATH 또는 PYTHONHOME 환경 변수의 내용을 보십시오. 아마도 이것은 두 번째 질문에 도움이 될 것입니다.


andrei1089

실제로 다음과 같이 할 수 있습니다.

 import os for item, value in os.environ.items(): print('{}: {}'.format(item, value))

또는 간단히:

 for i, j in os.environ.items(): print(i, j)

매개변수의 값을 보려면 다음을 수행하십시오.

 print(os.environ['HOME'])

또는:

 print(os.environ.get('HOME'))

값을 설정하려면:

 os.environ['HOME'] = '/new/value'

britodfbr

환경 변수의 경우:

 import os print os.environ["HOME"]

Jim Brissom

import os for a in os.environ: print('Var: ', a, 'Value: ', os.getenv(a)) print("all done")

그러면 모든 환경 변수가 값과 함께 인쇄됩니다.


Azorian

DjangoFlask 와 같은 웹 프레임워크를 사용하여 프로덕션 웹 애플리케이션 코드에서 코드를 사용할 계획이라면 envparse 와 같은 프로젝트를 사용하십시오. 이를 사용하여 정의된 유형으로 값을 읽을 수 있습니다.

 from envparse import env # will read WHITE_LIST=hello,world,hi to white_list = ["hello", "world", "hi"] white_list = env.list("WHITE_LIST", default=[]) # Perfect for reading boolean DEBUG = env.bool("DEBUG", default=False)

참고: kennethreitz의 autoenv 는 프로젝트별 환경 변수를 만드는 데 권장되는 도구입니다. autoenv 를 사용하는 분들은 .env 파일을 비공개로 유지하세요(공개적으로 접근 불가).


Renjith Thankachan

훌륭한 도서관도 많이 있습니다. 예를 들어 Envs 를 사용하면 환경 변수(rad)에서 객체를 구문 분석할 수 있습니다. 예를 들어:

 from envs import env env('SECRET_KEY') # 'your_secret_key_here' env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']

Peter Konneker

다음을 시도할 수도 있습니다.

python-decouple 설치합니다.

 pip install python-decouple

파일로 가져오기

 from decouple import config

그런 다음 환경 변수를 가져옵니다.

 SECRET_KEY=config('SECRET_KEY')

Python 라이브러리에 대한 자세한 내용은 여기를 참조하십시오 .


Steve Mitto

os 모듈을 가져옵니다.

 import os

환경 변수를 얻으려면:

 os.environ.get('Env_var')

환경 변수를 설정하려면:

 # Set environment variables os.environ['Env_var'] = 'Some Value'

Giorgi Imerlishvili

성능 중심 접근 방식 - environ 호출하는 것은 비용이 많이 들기 때문에 한 번 호출하고 사전에 저장하는 것이 좋습니다. 전체 예:

 from os import environ # Slower print(environ["USER"], environ["NAME"]) # Faster env_dict = dict(environ) print(env_dict["USER"], env_dict["NAME"])

PS- 개인 환경 변수 노출이 걱정된다면 할당 후 env_dict


Meir Gabay

Django의 경우 Django-environ을 참조하세요.

 $ pip install django-environ import environ env = environ.Env( # set casting, default value DEBUG=(bool, False) ) # reading .env file environ.Env.read_env() # False if not in os.environ DEBUG = env('DEBUG') # Raises Django's ImproperlyConfigured exception if SECRET_KEY not in os.environ SECRET_KEY = env('SECRET_KEY')

Leonardo

먼저 다음을 사용하여 os를 가져와야 합니다.

 import os

그런 다음 실제로 환경 변수 값을 인쇄합니다.

 print(os.environ['yourvariable'])

물론 yourvariable을 액세스하려는 변수로 바꾸십시오.


ichirod

.env 파일

여기 내 .env 파일이 있습니다(사람들이 내 계정을 해킹하는 것을 방지하기 위해 각 키의 여러 문자를 변경했습니다).

 SECRET_KEY=6g18169690e33af0cb10f3eb6b3cb36cb448b7d31f751cde AWS_SECRET_ACCESS_KEY=18df6c6e95ab3832c5d09486779dcb1466ebbb12b141a0c4 DATABASE_URL='postgres://drjpczkqhnuvkc:f0ba6afd133c53913a4df103187b2a34c14234e7ae4b644952534c4dba74352d@ec2-54-146-4-66.compute-1.amazonaws.com:5432/ddnl5mnb76cne4' AWS_ACCESS_KEY_ID=AKIBUGFPPLQFTFVDVIFE DISABLE_COLLECTSTATIC=1 EMAIL_HOST_PASSWORD=COMING SOON MAILCHIMP_API_KEY=a9782cc1adcd8160907ab76064411efe-us17 MAILCHIMP_EMAIL_LIST_ID=5a6a2c63b7 STRIPE_PUB_KEY=pk_test_51HEF86ARPAz7urwyGw9xwLkgbgfCYT48LttlwjEkb88I7Ljb5soBtuKXBaPiKfuu0Cx2BzIowR3jJFkC8ybFBAEf00DFY46tB8 STRIPE_SECRET_KEY=sk_test_19HEF55BCEAz7urwytx7tO3QCxV4R8DEFXbqj6esg7OKuybiSTI8iJD8mmJUQpg4RKENxuS04DKOCzYHpDkAjUttO00LOmsT5Eg

설정

데이터가 손상되었다고 들었습니다. 나는 무슨 일이 일어나고 있는지 알아내기 위해 고심하고 있었다. .env의 값이 내 설정 파일로 전달되지 않는다는 의심이 들었습니다.

 print(os.environ.get('AWS_SECRET_ACCESS_KEY')) print(os.environ.get('AWS_ACCESS_KEY_ID')) print(os.environ.get('AWS_SECRET_ACCESS_KEY')) print(os.environ.get('DATABASE_URL')) print(os.environ.get('SECRET_KEY')) print(os.environ.get('DISABLE_COLLECTSTATIC')) print(os.environ.get('EMAIL_HOST_PASSWORD')) print(os.environ.get('MAILCHIMP_API_KEY')) print(os.environ.get('MAILCHIMP_EMAIL_LIST_ID')) print(os.environ.get('STRIPE_PUB_KEY')) print(os.environ.get('STRIPE_SECRET_KEY'))

올바르게 인쇄되는 유일한 값은 SECRET_KEY입니다. .env 파일을 검토했는데 평생 SECRET_KEY가 작동하는 이유를 알 수 없었고 그 외에는 아무 것도 볼 수 없었습니다.

나는 이것을 print 문 위에 둠으로써 결국 모든 것을 작동시켰다.

 from dotenv import load_dotenv #for python-dotenv method load_dotenv() #for python-dotenv method

하고

 pip install -U python-dotenv

다른 모든 것이 고장 났을 때 SECRET_KEY가 작동하는 이유는 여전히 확실하지 않습니다.


Ross Symonds

출처 : http:www.stackoverflow.com/questions/4906977/how-to-access-environment-variable-values

반응형