0
我需要使用多處理模塊(而不是子進程,因爲我需要使用管道)來執行shell命令作爲新的子進程。目前我使用的是:如何在Python中的子進程中執行shell命令?
p = subprocess.Popen(subprocess_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=parent_env)
其中subprocess_command
是一個shell命令(它運行帶有參數的Python腳本)和parent_env
是當前環境設置不同的環境變量(LD_PRELOAD)。使用多處理模塊的等價物是什麼?子進程(Python腳本)需要能夠回到父進程。
嗯,你真的不這樣做有多處理...通常...多處理是用於調用腳本中的方法...我認爲subprocess.P開放不會以相同的方式綁定到GIL,如果這就是你所擔心的... – 2014-12-01 23:01:09
謝謝喬蘭。我應該寫我爲什麼要這樣做 - 基本上我正在創建一個子進程的原因是,它可以有一個不同的C函數庫預加載(因此LD_PRELOAD)。我不知道有什麼方法可以讓Popen在執行過程中與其父進行通信,這就是爲什麼我正在查看多處理模塊。 – 2014-12-01 23:05:34
你肯定可以從方法 – 2014-12-01 23:07:41