다음 코드 줄은 environment variable was not found
Azure에서 실행되는 RHEL8 가상 머신에서 오류를 발생시킵니다.
sourceKeys = os.environ.get("MY_ENV_VAR")
그러나 가상 머신에 퍼티를 넣으면 다음과 같이 변수에 액세스할 수 있습니다.
$ echo $MY_ENV_VAR
/path/to/some.yaml
이 변수는 다음 코드를 사용하여 시작 스크립트에서 패키저에 의해 설정됩니다.
export MY_ENV_VAR='/path/to/some.yaml'
echo "export MY_ENV_VAR='/path/to/some.yaml'" >> /etc/environment
echo "export MY_ENV_VAR='/path/to/some.yaml'" >> /etc/bashrc
echo "export MY_ENV_VAR='/path/to/some.yaml'" >> /etc/profile
Linux 터미널은 환경 변수를 읽을 수 있지만 Python은 읽을 수 없는 이유는 무엇입니까?
Python 프로그램이 환경 변수의 값을 읽으려면 어떤 변경이 필요합니까?
답변1
os.environ.get()
환경변수(env-var)의 값만 검색되며, 검색 프로세스에서 접근 가능합니다. 프로세스가 데몬( 에서 시작된 프로세스처럼 systemd
)이거나 내보내는 실행 공간에 독립적인 경우 $ echo $MY_ENV_VAR
결과는 예상과 다를 수 있습니다.
즉, 전역적으로 사용 가능하도록 변수를 내보내려면 해당 환경 변수의 값을 쿼리/검색하는 데 사용되는 프로세스를 생성하는 셸에서 변수를 내보내야 합니다.
일부 답변은 stackoverflow.com 및 다른 곳에서 찾을 수 있습니다.여기.