2013-05-04 47 views
0

我正在爲使用python的Maya 2011編寫一個插件。爲了利用我的機器上的所有內核(運行Windows 7 32位)並加速插件的性能,我使用多處理模塊創建了多個進程。當創建進程時,會彈出輸出窗口(最初在啓動Maya時彈出)。爲了解決這個問題,我讀了this的討論。當我將mayapy.exe設置爲可執行文件時,由於新進程是使用multiprocessing.Process(...)創建的,因此會彈出另一個窗口(看起來像命令行窗口)。窗口的數量與進程的數量相同,這些窗口剛剛出現並隨着進程執行完畢而消失。 我無法理解出現這些小窗口的原因,我不希望這些窗口彈出,請幫助。Maya中的多處理彈出一個窗口

回答

0

防止蟒蛇從彈出的控制檯窗口的典型方法是增加一個「W」到文件名末尾「mypythonfile.pyw」

0

我不得不使用subprocess.Popen同樣的問題在Maya 如果您將startupinfo = subprocess.STARTUPINFO.wShowWindow.SW_HIDE傳遞給Popen構造函數,這會隱藏命令行子流程窗口。 讀: http://msdn.microsoft.com/en-us/library/ms686331%28v=vs.85%29.aspx

我猜相同威力是multiprocessing.Process也是如此,雖然我在Windows中我不是現在進行測試。

+0

謝謝,我會試試看。 – qurban 2013-06-07 05:50:11

0

根據@ tranimatronic的回答,您應該能夠使用子進程標記生成單獨的MayaPy副本。確切的標誌取決於您的操作系統:

Cross-platform subprocess with hidden window

然而,你可能會有問題,如果您嘗試共享您的過程中的場景信息:每個人是瑪雅人的一個完全獨立的副本。如果它是一個大批量作業,並且您可以共享一個只讀文件(例如,您想一次渲染動畫或烘焙燈的一部分),但是您將無法執行並行處理在同一場景中(例如,創建幾何圖形)。一般來說,如果你在做計算密集型的事情,而你真的關心Maya中的多核,那麼你可能會對C++ API有更好的運氣。

另請注意:default maya version of subprocess doesn't use pipes like ordinary python: