使用时shell = True
,的第一个参数subprocess.Popen
应该是字符串,而不是列表:
p = subprocess.Popen('gphoto2', shell=True, ...)
但是,shell = True
应尽可能避免使用,因为这可能会带来安全风险(请参阅警告)。
所以改用
p = subprocess.Popen(['gphoto2'], ...)
(当shell = False
或shell
省略参数时,第一个参数应为列表。)
Python子进程调用返回“找不到命令”,终端正确执行
使用时shell = True
,的第一个参数subprocess.Popen
应该是字符串,而不是列表:
p = subprocess.Popen('gphoto2', shell=True, ...)
但是,shell = True
应尽可能避免使用,因为这可能会带来安全风险(请参阅警告)。
所以改用
p = subprocess.Popen(['gphoto2'], ...)
(当shell = False
或shell
省略参数时,第一个参数应为列表。)