2012-01-23 5 views
3

いくつかの入力ファイルを取り、別のファイルで出力を生成する新しいサブプロセスを開こうとしています。Python OSError no(引数リストが長すぎます)

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つのファイルのパス)は、OSがサポートできる長さよりも長かった。しかし、絶対パスを元の値の1/4に減らした後でさえも。私はまだこのエラーが発生します。私はいつもこのエラーが発生しないことに注意してください。ほとんどの場合、パス長はすべてのケースで同じですが、1000回以上実行された後になります。

+4

「コマンド」の値は何ですか? –

+0

あなたのコードはどこですか?あなたは何かが 'command'変数に蓄積していないと確信していますか? –

+0

コマンド変数は、長さが約200文字の文字列ではありません。これは確かにOSの制限を超えません。私はこの価値を印刷しており、そこに何も蓄積していないことは確かです。 – Amar

答えて