2009-07-28 6 views
0

외부 빌드 시스템에서 Python 환경을 부트 스트랩하기 위해 pip을 사용하는 몇 가지 코드가 있습니다. 이것은 나머지 호스트 시스템에서 빌드 요구 사항을 적절하게 분리하고 빌드 결과를 일관성있게 유지하는 멋진 방법입니다 사무용 겉옷.win32에서 os.execv()를 사용하여 자식을 다시 기다리는 방법?

어쨌든, 내가 가지고있는 코드는 pip.py에 Windows에서 문제가있는 것으로 보입니다. 문제는 내가 subprocess.Popen()을 사용하여 부트 스트랩 스크립트에서 pip 프로세스를 생성하고 프로세스가 완료 될 때까지 기다리는 것이지만 pipexecv을 사용하여 새로운 virtualenv에서 자신을 다시 실행한다는 사실 때문에 너무 일찍 발생합니다. 이런 일이 생기면 부모님은 그 아이가 exitcode 0으로 퇴장했음을보고 계신다.

질문은 간단합니다 : os.execv() win32의 자식 프로세스에서 새롭게 실행 된 자식 프로세스의 리턴 코드를 확인할 수있는 방식으로 어떻게 호출 할 수 있습니까?

답변

0

나는 이것을 처리하는 매끄러운 방법을 생각할 수 없다. 이것은 더러운 것처럼 들리 겠지만 스크립트가 실행되는 동안 플래그 파일을 파일 시스템에 놓고 작업하고 파일 정리를 기다릴 수 있습니까?

+0

플래그 파일은 실행 가능한 솔루션처럼 들리지만, 내 opionion에서 이와 같은 내용을 확인하기 위해 빈 파일을 갖는 것은 나쁘지 않습니다. –