2016-07-27 96 views
1

我試圖從Python腳本執行shell命令。 我試過通常的嫌疑人,subprocess.call,Popen,os.system等Shell命令在shell中工作,但不是從Python子進程中觸發時

我試圖執行的命令無可否認是相當長(7k字符),因爲其中一個參數是json字符串。從我讀過的長度不應該成爲這裏的問題。

的命令如下:

phantomjs /some/path/visualizer_interface.js -path /another/path/chart.svg -type chart_pie -id 0 -language de -data '{...}' 

展示臺接口是一個腳本,我寫我自己,基本上呈現一個幻影JS上下文請求的圖表,抓住SVG並將其寫入到指定的路徑。當我執行完全相同的命令時,我得到一個無瑕疵的圖表,但在Python中,子進程永遠不會返回,並且我也沒有得到任何形式的反饋,即使在子進程標準輸出上也沒有。

with open('/home/max/stdout.txt', 'w') as out: 
    res = subprocess.Popen(command, shell=True, stdout=out) 
res.wait() 

我能夠執行其他shell命令,所以它不是一個基本的Python問題。

任何想法非常讚賞。

回答

0

原來,我在phantomjs腳本中有一個非常小的錯誤,根據執行的位置不同而表現出不同的錯誤。

相關問題