Python은 RHEL에서 환경 변수를 볼 수 없습니다.

Python은 RHEL에서 환경 변수를 볼 수 없습니다.

다음 코드 줄은 environment variable was not foundAzure에서 실행되는 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 및 다른 곳에서 찾을 수 있습니다.여기.

관련 정보