wavファイルを操作するWebサービスを実行していますが、アップロードだけを許可したくないので、最初に次のコードを使用してアップロードされたファイルの期間を確認します。
os.chdir("/home/me/bin")
proc = subprocess.Popen(['duration',wav],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=False)
out, errors = proc.communicate()
time = int(float(out.strip()))
if time > MAX_TIME:
sys.exit(1)
これは数か月間正常に機能していますが、最近(移行後、追加する必要があります)、次のエラーが発生します。
Traceback (most recent call last):
File "/home/me/webservice.py", line 100, in <module>
proc = subprocess.Popen(['duration',wav],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=False)
File "/usr/lib64/python2.6/subprocess.py", line 639, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1228, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
このエラーは主に、リストの代わりにコマンドに文字列を使用したことが原因のようですが、ここではそうではありません。このエラーを別のスクリプトで再現しようとすると、再現できません。
誰かがここで何が原因であるかについて何か考えがありますか?