2009-07-28 21 views
0

我有一些代碼使用pip引導Python構建出來的構建過程:這是一個可愛的方式來確保我們從主機系統的其他部分正確隔離構建需求,並幫助我們獲得更一致的構建結果總體。如何等待一個在win32上使用os.execv()重新生成的孩子?

無論如何,我有驅動pip.py的代碼似乎在Windows上有一些問題。問題是我正在使用subprocess.Popen()從我的引導腳本產生pip進程,然後等待此過程完成,但由於pip使用execv在它創建的新的virtualenv下重新啓動,因此發生得太早。當發生這種情況時,我的父母發現孩子已經退出,退出代碼爲0,並繼續進行。

所以問題很簡單:我怎樣才能應付來自win32上的子進程的os.execv()調用,其中我可以確定新執行的子進程的返回代碼?

回答

0

我想不出任何平滑的方法來處理這個問題。這聽起來很骯髒,但也許你可以在腳本運行時將標誌文件放到文件系統上,然後等待這些文件被清理乾淨?

+0

一個標誌文件聽起來像是一個可行的解決方案,在我的操作系統中有一個空文件來檢查這樣的事情並不壞 – 2010-08-02 09:40:32