Adu*_*uen 8 python shell terminal subprocess
我试图从python运行gphoto2,但没有成功.它只返回未找到的命令.gphoto安装正确,如在,终端中的命令工作正常.
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
Run Code Online (Sandbox Code Playgroud)
我知道osx终端(应用程序)有一些有趣的东西,但是我对osx的了解很少.
对这个有什么想法吗?
编辑
改变了我的一些代码,出现了其他错误
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
Run Code Online (Sandbox Code Playgroud)
编辑
使用完整路径'/ opt/local/bin/gphoto2'
但如果有人关心解释使用哪个shell或如何登录并能够具有相同的功能..?
使用时shell = True
,第一个参数subprocess.Popen
应该是一个字符串,而不是一个列表:
p = subprocess.Popen('gphoto2', shell=True, ...)
Run Code Online (Sandbox Code Playgroud)
但是,shell = True
应尽可能避免使用,因为它可能存在安全风险(请参阅警告).
所以改为使用
p = subprocess.Popen(['gphoto2'], ...)
Run Code Online (Sandbox Code Playgroud)
(当shell = False
或,如果shell
省略参数,第一个参数应该是一个列表.)
归档时间: |
|
查看次数: |
15556 次 |
最近记录: |