2012-01-23 53 views
3

我想打開一個新的子進程,它將採取幾個輸入文件並在其他文件中生成輸出。雖然這種運行乾淨大部分的時間,當我試圖做一些壓力測試失敗,給我下面的錯誤跟蹤:Python的OSError沒有7(參數列表太長)在Linux中

File "/home/admin/Workspace/.metadata/.plugins/org.eclipse.pde.core/pde-junit/org.eclipse.osgipython/util/media_info.py", line 161, in external_process 

    process = subprocess.Popen(command, shell=shell, close_fds=True, stderr=subprocess.PIPE) 

    File "/usr/local/lib/python2.6/subprocess.py", line 623, in __init__ 
    errread, errwrite) 

    File "/usr/local/lib/python2.6/subprocess.py", line 1141, in _execute_child 
    raise child_exception 

OSError: [Errno 7] Argument list too long 

起初我還以爲我是路過的命令(這是絕對的4個文件的路徑)比操作系統能夠支持的時間長。但即使減少了傳遞給原始值的四分之一的絕對路徑。我仍然得到這個錯誤。請注意,我一直都沒有得到這個錯誤。大多數情況下,它在1000次或更多次運行後,所有情況下的路徑長度保持不變。

+4

'command'的值是什麼? –

+0

你的代碼在哪裏?你確定'command'變量中沒有積累嗎? –

+0

否命令變量是一個大約200個字符的字符串。這當然不會超出任何操作系統限制。我正在打印這個值,我很確定那裏沒有任何積累。 – Amar

回答