Popen error: [Errno 2] No such file or directory Popen error: [Errno 2] No such file or directory python python

Popen error: [Errno 2] No such file or directory


Try add an extra parameter shell=True to the Popen call.


Just a note. shell=True was likely the correct solution to the o.p., since they did not make the following mistake, but you can also get the "No such file or directory" error if you do not split up your executable from its arguments.

import subprocess as sp, shlexsp.Popen(['echo 1']) # FAILS with "No such file or directory"sp.Popen(['echo', '1']) # SUCCEEDSsp.Popen(['echo 1'], shell=True) # SUCCEEDS, but extra overheadsp.Popen(shlex.split('echo 1')) # SUCCEEDS, equivalent to #2

Without shell=True, Popen expects the executable to be the first element of args, which is why it fails, there is no "echo 1" executable. Adding shell=True invokes your system shell and passes the first element of args to the shell. i.e. for linux, Popen(['echo 1'], shell=True) is equivalent to Popen('/bin/sh', '-c', 'echo 1') which is more overhead than you may need. See Popen() documentation for cases when shell=True is actually useful.


You have to give the full path to your program deactivate and then it the subprocess module should be able to find it.