파이썬 스크립트에서 일부 환경 변수를 설정해야하며 파이썬에서 호출 된 다른 모든 스크립트가 환경 변수 세트를 보길 원합니다.
만약 내가한다면
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
파이썬 사전처럼 동작하므로 모든 일반적인 사전 작업을 수행 할 수 있습니다. 다른 답변에서 언급 한 get
및 set
작업 외에도 키가 있는지 간단히 확인할 수 있습니다. 키와 값은 문자열 로 저장해야합니다 .
파이썬 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