내 Python 애플리케이션에서 액세스하려는 환경 변수를 설정했습니다. 그 가치를 어떻게 얻을 수 있습니까?
질문자 :Amit Yadav
환경 변수는 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
Django 및 Flask 와 같은 웹 프레임워크를 사용하여 프로덕션 웹 애플리케이션 코드에서 코드를 사용할 계획이라면 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
'etc. > StackOverFlow' 카테고리의 다른 글
Bash 스크립트에서 프로그램이 있는지 어떻게 확인할 수 있습니까? (0) | 2021.11.13 |
---|---|
'android.os.NetworkOnMainThreadException'을 어떻게 고칠 수 있습니까? (0) | 2021.11.13 |
macOS 업데이트 후 Git이 작동하지 않음(xcrun: 오류: 잘못된 활성 개발자 경로(/Library/Developer/CommandLineTools) (0) | 2021.11.13 |
finally 블록은 항상 Java에서 실행됩니까? (0) | 2021.11.13 |
Git fetch 원격 브랜치 (0) | 2021.11.13 |