I am trying to run gphoto2 from python but, with no succes. It just returns command not found. gphoto is installed correctly, as in, the commands work fine in Terminal.
p = subprocess.Popen(['gphoto2'], shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, executable='/bin/bash')
for line in p.stdout.readlines():
print line
p.wait()
/bin/bash: gphoto2: command not found
I know that there is something funny about the osx Terminal (app) but, my knowledge on osx is meager.
Any thoughts on this one?
EDIT
changed some of my code, other errors appear
p = subprocess.Popen(['gphoto2'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout:
print line
raise child_exception
OSError: [Errno 2] No such file or directory
EDIT
using full path '/opt/local/bin/gphoto2'
but if someone care to explain which shell to use or how to log in and be able to have the same functionality..?
When using shell = True
, the first argument to subprocess.Popen
should be a string, not a list:
p = subprocess.Popen('gphoto2', shell=True, ...)
However, using shell = True
should be avoided if possible since it can be a security risk (see the Warning).
So instead use
p = subprocess.Popen(['gphoto2'], ...)
(When shell = False
, or if the shell
parameter is omitted, the first argument should be a list.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With