PATH
파이썬을 사용하여 플랫폼 독립적 인 방식으로 환경 변수 를 수정하는 방법이 있습니까?
비슷한 것 os.path.join()
?
답변:
을 수정할 수 있어야합니다 os.environ
.
os.pathsep
다른 경로를 구분하는 문자 이므로 새 경로를 각각 추가하려면 이것을 사용해야합니다.
os.environ["PATH"] += os.pathsep + path
또는 목록에 추가 할 경로가 여러 개인 경우 :
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
앞서 언급했듯이, os.path.join
별도의 부분에서 구성해야하는 경우 추가해야하는 각 개별 경로에 사용할 수도 있습니다.
os.pathsep
내가 언급 한 (PATH 특정) 의미합니까?
os.path.sep != os.pathsep
.
주의하시기 바랍니다 os.environ
실제로 사전 아니다. setenv를 사용하여 현재 프로세스에서 환경 변수를 실제로 설정 하는 특별한 사전 과 같은 객체입니다 .
>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'
즉 , 동일한 프로세스에서 실행되는 C 코드에 PATH
(및 기타 환경 변수) 가 표시됩니다.
(댓글은 서식을 포함 할 수 없기 때문에 답을 입력해야하는데 중요한 포인트라고 생각합니다. 이것은 실제로 'export'에 해당하는 댓글이 없다는 댓글에 대한 댓글 입니다.)
Python에서 환경 변수를 수정할 때주의해야 할 점은 "export"셸 명령에 해당하는 것이 없다는 것입니다. 현재 프로세스에 변경 사항을 주입하는 방법은 없으며 자식 프로세스 만 있습니다.
os.system
, os.popen
또는 같은 명령을 subprocess.Popen
Python 애플리케이션에서 사용하여 다른 프로세스를 시작해야합니다. 그렇지 않으면 거의 무의미합니다.
export
변수가 모든 하위 프로세스 의 환경에 복사되도록 하지만 상위 프로세스에는 영향을주지 않습니다.