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, Это опасный вариант, который делает ваш сценарий потенциальным вектором проблем безопасности.

Другие вопросы по тегам