Python не может выполнить программу, даже если я использую абсолютные пути - PullRequest
0 голосов
/ 18 февраля 2012

Я запускаю команду /usr/bin/ssh 192.168.0.109 с помощью модуля Python subprocess. Тем не менее я получаю сообщение об ошибке «Файл не найден», хотя я использую абсолютные пути.

OSError: Cannot run program "/usr/bin/ssh 192.168.0.109" (in directory "/home/max/repo/vssh/vssh"): java.io.IOException: error=2, No such file or directory

Я работаю в своем домашнем каталоге, но это должно иметь значение, поскольку я даю полный путь, верно?

Вот где возникает ошибка:

current_session = Popen(["/usr/bin/ssh " + x.address], stdin=PIPE, stdout=PIPE)

(ох и /usr/bin/ssh существует)

1 Ответ

1 голос
/ 18 февраля 2012

Вы должны передать список строк в Popen, а не в командной строке оболочки.

current_session = Popen(["/usr/bin/ssh", x.address], stdin=PIPE, stdout=PIPE)

Это должно работать лучше.

...