본문 바로가기
파이썬

파이썬 기본 Python 스크립트에서 Python 스크립트를 실행하기 위해 새 셸을 생성하려면 어떻게해야합니까?

by º기록 2020. 9. 30.
반응형

여러 Python 스크립트를 성공적으로 실행하여 subprocess 모듈을 사용하여 기본 스크립트에서 호출했습니다.

subprocess.popen([sys.executable, 'script.py'], shell=True)

그러나 이러한 각 스크립트는 셸에 일부 출력을 생성하는 일부 시뮬레이션 (C ++ 응용 프로그램의 .exe 파일)을 실행합니다. 이러한 모든 출력은 해당 스크립트를 시작한 기본 셸에 기록됩니다. 각 스크립트에 대해 새 셸을 생성하고 싶습니다. subprocess.call을 호출 할 때 shell = True 속성을 ​​사용하여 새 셸을 생성하려고 시도했지만 (popen에서도 시도) 작동하지 않습니다.

subprocess.call로 생성 된 각 프로세스에 대한 새 셸을 어떻게 얻습니까?

Spencer가 제안한 stdin 및 stdout에 대한 문서를 읽고 문제를 해결 한 플래그를 발견했습니다 : subprocess.CREATE_NEW_CONSOLE. 파이프를 리디렉션하는 것도 작업을 수행 할 수도 있지만 이것이 가장 간단한 해결책 인 것 같습니다 (적어도이 특정 문제에 대해서는). 방금 테스트했고 완벽하게 작동했습니다.

subprocess.popen([sys.executable, 'script.py'], creationflags = subprocess.CREATE_NEW_CONSOLE)

 

해결 방법

 


이러한 파이프를 리디렉션하지 않으면 부모로부터 상속됩니다. 프로세스 교착 상태에주의하십시오.


 

참조 페이지 https://stackoverflow.com/questions/6469655

 

 

반응형

댓글