Python에서 환경변수에 액세스하려면 어떻게 해야 합니까?
Python에서 환경변수 값을 얻으려면 어떻게 해야 합니까?
환경변수는 다음과 같이 접근합니다.
import os
print(os.environ['HOME'])
모든 환경변수 목록을 표시하려면:
print(os.environ)
키가 존재하지 않는 경우 해당 키에 액세스하려고 하면 키가 생성됩니다.KeyError
. 이를 피하기 위해:
# Returns `None` if key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))
# Returns `default_value` if key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST', default_value))
# Returns `default_value` if key doesn't exist
print(os.getenv('KEY_THAT_MIGHT_EXIST', default_value))
키가 존재하는지 확인하려면(반환)True
또는False
)
'HOME' in os.environ
를 사용할 수도 있습니다.get()
키를 인쇄할 때 사용합니다.기본값을 사용할 경우 유용합니다.
print(os.environ.get('HOME', '/home/username/'))
어디에/home/username/
는 디폴트입니다.
실제로 다음과 같은 방법으로 수행할 수 있습니다.
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'
여기 확인 방법이 있습니다.$FOO
다음과 같이 설정되어 있습니다.
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
환경변수는 다음 방법으로 접근할 수 있습니다.
import os
print os.environ
PYTONPATH 또는 PYTONHOME 환경변수의 내용을 확인합니다.아마 이것이 두 번째 질문에 도움이 될 것입니다.
환경변수에 대해서:
import os
print os.environ["HOME"]
import os
for a in os.environ:
print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")
그러면 모든 환경 변수가 값과 함께 인쇄됩니다.
를 Import 합니다.os
모듈:
import os
환경변수를 가져오려면:
os.environ.get('Env_var')
환경변수를 설정하려면:
# Set environment variables
os.environ['Env_var'] = 'Some Value'
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
file private(공개되지 않음)
또한 많은 훌륭한 도서관들이 있다.예를 들어 Envs를 사용하면 환경변수(rad)에서 객체를 해석할 수 있습니다.예를 들어 다음과 같습니다.
from envs import env
env('SECRET_KEY') # 'your_secret_key_here'
env('SERVER_NAMES',var_type='list') #['your', 'list', 'here']
다음의 조작도 실행할 수 있습니다.
먼저 설치python-decouple
pip install python-decouple
파일로 가져오기
from decouple import config
그런 다음 환경 변수를 가져옵니다.
SECRET_KEY=config('SECRET_KEY')
Python 라이브러리에 대한 자세한 내용은 여기를 참조하십시오.
편집필 - 2021년 10월
@Peter의 코멘트에 따라 테스트 방법은 다음과 같습니다.
main.py
#!/usr/bin/env python
from os import environ
# Initialize variables
num_of_vars = 50
for i in range(1, num_of_vars):
environ[f"_BENCHMARK_{i}"] = f"BENCHMARK VALUE {i}"
def stopwatch(repeat=1, autorun=True):
"""
Source: https://stackoverflow.com/a/68660080/5285732
stopwatch decorator to calculate the total time of a function
"""
import timeit
import functools
def outer_func(func):
@functools.wraps(func)
def time_func(*args, **kwargs):
t1 = timeit.default_timer()
for _ in range(repeat):
r = func(*args, **kwargs)
t2 = timeit.default_timer()
print(f"Function={func.__name__}, Time={t2 - t1}")
return r
if autorun:
try:
time_func()
except TypeError:
raise Exception(f"{time_func.__name__}: autorun only works with no parameters, you may want to use @stopwatch(autorun=False)") from None
return time_func
if callable(repeat):
func = repeat
repeat = 1
return outer_func(func)
return outer_func
@stopwatch(repeat=10000)
def using_environ():
for item in environ:
pass
@stopwatch
def using_dict(repeat=10000):
env_vars_dict = dict(environ)
for item in env_vars_dict:
pass
python "main.py"
# Output
Function=using_environ, Time=0.216224731
Function=using_dict, Time=0.00014206099999999888
이게 사실이라면...1500배 고속으로dict()
접속하는 대신environ
직접적으로.
퍼포먼스 지향 접근법 - 콜environ
비싸니까 한번 불러서 사전에 저장해두는 게 좋을 것 같아요.완전한 예:
from os import environ
# Slower
print(environ["USER"], environ["NAME"])
# Faster
env_dict = dict(environ)
print(env_dict["USER"], env_dict["NAME"])
추신: 개인 환경 변수 노출이 우려되는 경우 삭제하십시오.env_dict
과제의 종료후.
장고에 대해서는 장고환경을 참조해 주세요.
$ 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')
먼저 다음을 사용하여 os를 Import해야 합니다.
import os
실제 환경변수 값을 출력합니다.
print(os.environ['yourvariable'])
물론 액세스할 변수로 변수를 바꿉니다.
네스트된 for-loops를 한 줄에 사용할 때 어려운 점은 목록 이해 기능을 사용해야 한다는 것입니다.따라서 외부 라이브러리를 가져오지 않고 모든 환경 변수를 인쇄하려면 다음을 사용할 수 있습니다.
python -c "import os;L=[f'{k}={v}' for k,v in os.environ.items()]; print('\n'.join(L))"
언급URL : https://stackoverflow.com/questions/4906977/how-do-i-access-environment-variables-in-python
'source' 카테고리의 다른 글
Python을 사용하여 파일 이름을 변경하는 방법 (0) | 2022.09.17 |
---|---|
java.sql로 표시되는 밀리초수를 취득하는 방법.시간? (0) | 2022.09.17 |
PHP에서 SFTP를 사용하는 방법 (0) | 2022.09.16 |
MariaDB PCRE 정규 표현 문제 (0) | 2022.09.16 |
지정된 html 문자열에서 선행 및 후행 공백을 제거하려면 어떻게 해야 합니까? (0) | 2022.09.16 |