python3 subprocess.run()get系统找不到Windows docker容器中指定的文件

时间:2018-12-05 19:06:22

标签: python docker subprocess docker-container docker-for-windows

运行时

subprocess.run(args=['ls /'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)

在一个窗口docker容器中,发生错误,提示:

  

[WinError 2]系统找不到指定的文件

但是它永远不会在我的Windows主机上发生。

python版本:3.6.6 Windows docker映像:winservercore:1803

有任何线索或建议吗?

1 个答案:

答案 0 :(得分:1)

当你说

args=['ls /']

您正在尝试运行一个名为ls /的命令;在通常有文件扩展名的Windows上下文中,它可能被命名为ls /.exe。您可能是说这是两个单独的单词,需要分别包含在参数列表中

args=['ls', '/']

不要指定shell=True。这是一个危险的选择,会使您的脚本成为安全问题的潜在载体。