python3 subprocess.run() get Системе не удается найти файл, указанный в Docker-контейнере Windows
При беге
subprocess.run(args=['ls /'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
в окне докера, возникает ошибка, которая говорит:
[WinError 2] Система не может найти указанный файл
Но это никогда не происходит на моем хост-компьютере Windows.
Python версия: 3.6.6 Windows Docker Изображение: winservercore:1803
Любые подсказки или предложения?
1 ответ
Когда ты сказал
args=['ls /']
Вы пытаетесь запустить одну команду с именем ls /
; в контексте Windows, где обычно существуют расширения файлов, его можно назвать ls /.exe
, Вы, вероятно, имеете в виду, что это два отдельных слова, которые должны быть включены отдельно в список аргументов
args=['ls', '/']
Не указывать shell=True
, Это опасный вариант, который делает ваш сценарий потенциальным вектором проблем безопасности.