파이썬에서 환경 변수에 액세스하려면 어떻게 해야 합니까?
파이썬에서 환경 변수의 값을 얻으려면 어떻게 해야 합니까?
환경 변수는 다음을 통해 액세스할 수 있습니다.
import os
print(os.environ['HOME'])
모든 환경 변수 목록 보기
print(os.environ)
키가 없는 경우 키에 액세스하려고 시도하면 다음 메시지가 표시됩니다.KeyError
이 문제를 방지하려면:
# Returns `None` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST'))
# Returns `default_value` if the key doesn't exist
print(os.environ.get('KEY_THAT_MIGHT_EXIST', default_value))
# Returns `default_value` if the 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/
기본값입니다.
다음을 확인하는 방법은 다음과 같습니다.$FOO
설정됨:
try:
os.environ["FOO"]
except KeyError:
print "Please set the environment variable FOO"
sys.exit(1)
실제로 다음과 같은 방법으로 수행할 수 있습니다.
import os
for key, value in os.environ.items():
print(f'{key}: {value}')
간단히 말하면:
for key, value in os.environ.items():
print('{}: {}'.format(key, 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'
다음을 사용하여 환경 변수에 액세스할 수 있습니다.
import os
print os.environ
PYTHONPATH 또는 PYTHONHOME 환경 변수의 내용을 확인해 보십시오.아마도 이것은 당신의 두 번째 질문에 도움이 될 것입니다.
환경 변수의 경우:
import os
print os.environ["HOME"]
가져오기os
모듈:
import os
환경 변수를 가져오는 방법
os.environ.get('Env_var')
환경 변수를 설정하는 방법
# Set environment variables
os.environ['Env_var'] = 'Some Value'
import os
for a in os.environ:
print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")
그러면 값과 함께 모든 환경 변수가 인쇄됩니다.
Django 및 Flask와 같은 웹 프레임워크를 사용하여 프로덕션 웹 응용 프로그램 코드에서 코드를 사용할 계획이라면 envarse와 같은 프로젝트를 사용하십시오.이를 사용하여 정의된 유형의 값을 읽을 수 있습니다.
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
비공개 파일(공개되지 않은 파일)입니다.
또한 많은 훌륭한 도서관들이 있습니다.예를 들어, 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 os
그런 다음 실제로 환경 변수 값을 인쇄합니다.
print(os.environ['yourvariable'])
물론 변수를 액세스할 변수로 바꾸십시오.
한 줄로 중첩된 루프를 사용할 때 까다로운 부분은 목록 이해를 사용해야 한다는 것입니다.따라서 외부 라이브러리를 가져오지 않고 모든 환경 변수를 인쇄하려면 다음을 사용할 수 있습니다.
python -c "import os;L=[f'{k}={v}' for k,v in os.environ.items()]; print('\n'.join(L))"
사용할 수 있습니다.python-dotenv
environment 는 환경 변수에 접근하는 모듈입니다.
다음을 사용하여 모듈을 설치합니다.
pip install python-dotenv
그런 다음 모듈을 Python 파일로 가져옵니다.
import os
from dotenv import load_dotenv
# Load the environment variables
load_dotenv()
# Access the environment variable
print(os.getenv("BASE_URL"))
언급URL : https://stackoverflow.com/questions/4906977/how-can-i-access-environment-variables-in-python
'source' 카테고리의 다른 글
WPF: 콘텐츠 제어를 위한 데이터 템플릿 트리거를 설정하는 방법은 무엇입니까? (0) | 2023.05.17 |
---|---|
Python: 목록에서 판다 데이터 프레임 만들기 (0) | 2023.05.17 |
Python mock Patchos.environ 및 반환 값 (0) | 2023.05.12 |
Azure App Service 요금제를 삭제할 수 없습니다. (0) | 2023.05.12 |
C#의 문자열과 열거형 연결 (0) | 2023.05.12 |