반응형

오류 내용

pyinstaller는 -w 옵션을 이용하여 새 창이 뜨지 않게 하였지만 subprocess.popen 함수를 사용한 후 pyinstaller를 이용하여 exe프로그램으로 패키징하면 subprocess.popen 호출시 cmd창이 출력되는 문제

 

 

해결 방법

popen에 shell=True 속성을 추가한다.

shell=True로 두면 기본 파이썬 스크립트가 아닌 사용자가 선택한 별도의 쉘을 생성 후 생성된 쉘에서 실행된다고 한다. 일반적으로 쉘을 이용한 호출을 피하라고 하는데, 구체적인건 추가 학습이 필요하다.

process = subprocess.Popen(cmd, stdout=subprocess.PIPE, 
	stderr=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)

 

 

참고

https://docs.python.org/3/library/subprocess.html