[python] 파이썬에서 환경 변수를 설정하는 방법

파이썬 스크립트에서 일부 환경 변수를 설정해야하며 파이썬에서 호출 된 다른 모든 스크립트가 환경 변수 세트를 보길 원합니다.

만약 내가한다면

os.environ["DEBUSSY"] = 1`

그것은 1문자열이어야 한다고 불평 합니다.

또한 일단 환경 변수를 설정하면 파이썬 (스크립트의 뒷부분)에서 환경 변수를 읽는 방법을 알고 싶습니다.



답변

환경 변수는 문자열이어야하므로

os.environ["DEBUSSY"] = "1"

변수 DEBUSSY를 문자열 로 설정합니다 1.

나중에이 변수에 액세스하려면 다음을 사용하십시오.

print(os.environ["DEBUSSY"])

자식 프로세스는 부모 프로세스의 환경 변수를 자동으로 상속하므로 사용자의 특별한 조치가 필요하지 않습니다.


답변

코드 견고성을 위해 몇 가지 추가 측면을 고려해야 할 수도 있습니다.

정수 값 변수를 환경 변수로 저장할 때 시도하십시오

os.environ['DEBUSSY'] = str(myintvariable)

그런 다음 검색하려면 오류를 피하기 위해 시도해야한다고 생각하십시오.

os.environ.get('DEBUSSY', 'Not Set')

‘설정되지 않음’대신 ‘-1’을 대체 할 수 있음

그래서, 그 모든 것을 함께

myintvariable = 1
os.environ['DEBUSSY'] = str(myintvariable)
strauss = int(os.environ.get('STRAUSS', '-1'))
# NB KeyError <=> strauss = os.environ['STRAUSS']
debussy = int(os.environ.get('DEBUSSY', '-1'))

print "%s %u, %s %u" % ('Strauss', strauss, 'Debussy', debussy)


답변

os.environ파이썬 사전처럼 동작하므로 모든 일반적인 사전 작업을 수행 할 수 있습니다. 다른 답변에서 언급 한 getset작업 외에도 키가 있는지 간단히 확인할 수 있습니다. 키와 값은 문자열 로 저장해야합니다 .

파이썬 3

파이썬 3의 경우 사전 에서 has_key 대신 in 키워드를 사용하십시오 .

>>> import os
>>> 'HOME' in os.environ  # Check an existing env. variable
True
...

파이썬 2

>>> import os
>>> os.environ.has_key('HOME')  # Check an existing env. variable
True
>>> os.environ.has_key('FOO')   # Check for a non existing variable
False
>>> os.environ['FOO'] = '1'     # Set a new env. variable (String value)
>>> os.environ.has_key('FOO')
True
>>> os.environ.get('FOO')       # Retrieve the value
'1'

사용에 관해주의해야 할 중요한 사항이 있습니다 os.environ.

자식 프로세스는 부모 프로세스에서 환경을 상속 받았지만 최근에 문제가 발생하여 파이썬 스크립트가 실행되는 동안 환경을 업데이트하는 다른 스크립트가있는 경우 os.environ다시 호출 하면 최신 값이 반영되지 않습니다 .

문서 에서 발췌 :

이 매핑은 os 모듈을 처음 가져올 때, 일반적으로 site.py 처리의 일부로 Python 시작 중에 캡처됩니다. 이 시간 이후 변경된 환경은 os.environ을 직접 수정하여 변경 한 경우를 제외하고 os.environ에 반영되지 않습니다.

os.environ.data 모든 환경 변수를 저장하는 dict 객체는 모든 환경 값을 포함합니다.

>>> type(os.environ.data)  # changed to _data since v3.2 (refer comment below)
<type 'dict'>


답변

os.environ [ “DEBUSSY”] = 1을 수행하면 1이 문자열이어야한다고 불평합니다.

그런 다음

os.environ["DEBUSSY"] = "1"

또한 일단 파이썬에서 환경 변수를 읽는 방법을 알고 싶습니다 (스크립트의 뒷부분에서) 일단 설정하면.

os.environ["DEBUSSY"]에서와 같이 사용하십시오 .

some_value = os.environ["DEBUSSY"]


답변

변수를 설정하려면 :

키를 사용한 항목 지정 방법 :

import os    
os.environ['DEBUSSY'] = '1'  #Environ Variable must be string not Int

존재 여부를 확인하거나

os.environ 은 인스턴스 이므로 객체 방식을 시도 할 수 있습니다.

방법 1 :

os.environ.get('DEBUSSY') # this is error free method if not will return None by default

'1'반환 값으로 얻을 것이다

방법 2 :

os.environ['DEBUSSY'] # will throw an key error if not found!

방법 3 :

'DEBUSSY' in os.environ  # will return Boolean True/False

방법 4 :

os.environ.has_key('DEBUSSY') #last 2 methods are Boolean Return so can use for conditional statements


답변

환경 변수에 문자열 값을 지정해야합니다.

os.environ["DEBUSSY"] = "1"

환경 변수를 읽거나 인쇄하려면 다음을 사용하십시오.

print os.environ["DEBUSSY"]

이 변경 사항은 지정된 현재 프로세스에만 적용되며 값을 영구적으로 변경하지는 않습니다. 자식 프로세스는 부모 프로세스의 환경을 자동으로 상속합니다.

여기에 이미지 설명을 입력하십시오


답변

무엇에 대해 os.environ["DEBUSSY"] = '1'? 환경 변수는 항상 문자열입니다.