subprocess.callの実行時エラー対処方法

More than 1 year has passed since last update.


発生事象

【スタダ】ポケモンGOがリリースされたら電話掛かってくるスクリプト

上の記事を丸パクリしてスクリプトをcron実行させようとした時に

pythonのsubprocessモジュールでコマンド実行時に以下のエラーが発生

python poke_check.py 

Traceback (most recent call last):
File "poke_check.py", line 47, in <module>
start()
File "poke_check.py", line 43, in start
subprocess.call("echo 'not open'")
File "/usr/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory


原因・解決策

http://stackoverflow.com/questions/18962785/oserror-errno-2-no-such-file-or-directory-while-using-python-subprocess-in-dj

上記のstackoverflowの記事により解決。

実行したいコマンドを文字列で渡す場合はフラグが必要みたい。

subprocess.call("(実行したいコマンド)", shell=True)