После написания очень простой питон скрипт для ls
содержимого моего каталога проекта в качестве теста:subprocess.Popen команды возвращающее не найден
from subprocess import *
p = Popen(['ls /Users/Nelson/Projects'], stdout=PIPE, shell=True)
print(p.communicate()[0].decode())
Он вышвырнул ошибку:
/bin/bash: ls: command not found
I сделал немного тестирования и обнаружил основные команды pwd
, echo
и cd
все слова отлично, но не ls
. Я попытался использовать опцию executable='/bin/bash'
, потому что она по умолчанию равна /bin/sh
, но это ничего не делало.
Этот скрипт был протестирован на Ubuntu 14.04 LTS и Ubuntu 16.04 LTS, оба работают нормально.
Я использую Mac OSX 10.12.3 Sierra, если это означает, что что-то в этой ситуации
Любые ответы высоко оценили!
Для записи, '' pwd', echo' и ' cd' - все 'bash' встроенные, а' ls' - отдельная исполняемая программа, а не встроенная. Это может быть причиной расхождения в поведении. – ShadowRanger