Мне нужно использовать wget в скрипте Python с функцией subprocess.call, но кажется, что команда "wget" не может быть идентифицирована подпроцессом bash, открытым python.
Я добавил переменную окружения (путь, где находится wget):
export PATH=/usr/local/bin:$PATH
к файлу ~ / .bashrc и файлу ~ / .bash_profile на моем Mac и гарантированно предоставил их.
И скрипт Python выглядит так:
import subprocess as sp
cmd = 'wget'
process = sp.Popen(cmd ,stdout=sp.PIPE, stdin=sp.PIPE,
stderr=sp.PIPE, shell=True ,executable='/bin/bash')
(stdoutdata, stderrdata) = process.communicate()
print stdoutdata, stderrdata
Ожидаемый результат должен быть как
wget: missing URL
Usage: wget [OPTION]... [URL]...
Но результат всегда
/bin/bash: wget: command not found
Интересно, что я могу получить вывод справки, если наберу wget непосредственно в терминале bash, но он никогда не работает в скрипте python. Как это могло быть?
PS:
Если я изменю команду на
cmd = '/usr/local/bin/wget'
тогда это работает. Так что я уверен, что я установил wget.