OSError: [Errno 2] No such file or directory while using python subprocess in Django

I am trying to run a program to make some system calls inside Python code using subprocess.call() which throws the following error:

    Traceback (most recent call last):
          File "<console>", line 1, in <module>
          File "/usr/lib/python2.7/subprocess.py", line 493, in call
          return Popen(*popenargs, **kwargs).wait()
          File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
          File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
          raise child_exception
          OSError: [Errno 2] No such file or directory

My actual Python code is as follows:

    url = "/media/videos/3cf02324-43e5-4996-bbdf-6377df448ae4.mp4"
    real_path = "/home/chanceapp/webapps/chanceapp/chanceapp"+url
    fake_crop_path = "/home/chanceapp/webapps/chanceapp/chanceapp/fake1"+url
    fake_rotate_path = "/home/chanceapp/webapps/chanceapp.chanceapp/fake2"+url
    crop = "ffmpeg -i %s -vf "%(real_path)+"crop=400:400:0:0 "+ "-strict -2 %s"%(fake_crop_path)
    rotate = "ffmpeg -i %s -vf "%(fake_crop_path)+"transpose=1 "+"%s"%(fake_rotate_path)
    move_rotated = "mv"+" %s"%(fake_rotate_path)+" %s"%(real_path)
    delete_cropped = "rm "+"%s"%(fake_crop_path)
    #system calls:
    subprocess.call(crop)

Can I get some relevant advice on how to solve this?

Use shell=True if you're passing a string to subprocess.call.

From docs:

If passing a single string, either shell must be True or else the string must simply name the program to be executed without specifying any arguments.

    subprocess.call(crop, shell=True)

or:

    import shlex
    subprocess.call(shlex.split(crop))

From: stackoverflow.com/q/18962785

Back to homepage or read more recommendations: