그것은 문제가 무엇인지에 달려 있습니다. 환경을 복제하고 수정하는 경우 한 가지 해결책은 다음과 같습니다.
subprocess.Popen(my_command, env=dict(os.environ, PATH="path"))
그러나 대체 된 변수는 유효한 파이썬 식별자이며, 가장 자주 사용되는 변수입니다 (영숫자 + 밑줄이 아닌 환경 변수 이름 또는 숫자로 시작하는 변수는 얼마나 자주 발생합니까?).
그렇지 않으면 다음과 같이 작성할 수 있습니다.
subprocess.Popen(my_command, env=dict(os.environ,
**{"Not valid python name":"value"}))
매우 이상한 경우 (환경 변수 이름에 제어 코드 또는 ASCII가 아닌 문자를 얼마나 자주 사용합니까?) 환경의 키는 bytes
(python3에서) 해당 구문을 사용할 수도 없습니다.
여기에 사용 된 기술 (특히 첫 번째)이 환경의 키에 대한 이점은 일반적으로 유효한 파이썬 식별자이며 사전에 (코딩시) 알려져 있지만 두 번째 접근법에는 문제가 있습니다. 그렇지 않은 경우 다른 방법을 찾아야합니다 .
os.pathsep
플랫폼에서 작동하는 경로에는 ":"대신 사용하는 것이 좋습니다. 참조 stackoverflow.com/questions/1499019/...