FileNotFoundError: python 3.4

Я пытаюсь автоматически принять ключ ssh-rsa через Plink через python. Но я получаю ошибку

Ниже мой код

def __init__(self, ipaddress, option, user, password, command=""): """ Constructor creates the connection to the host. """ self.ipaddress = ipaddress self.option = option self.user = user self.password = password self.command = command self.key() def key(self): command1 = ['echo', 'y'] process1 = subprocess.Popen(command1,stdout=subprocess.PIPE) command2 = ['plink', '-ssh', self.option, '-pw', self.password, '%s@%s'%(self.user, self.ipaddress), '\"exit\"'] process2 = subprocess.Popen(command2,stdin=process1.stdout,stdout=subprocess.PIPE) def sendSingleCommand(self, command): """ Set up a ssh connection a device, send command, close connection and return stdout,stderr tuple. """ try: print("plink -ssh %s -pw %s %s@%s %s" \ % (self.option, self.password, self.user, self.ipaddress, command)) self.process = subprocess.Popen("plink -ssh %s -pw %s %s@%s %s" \ % (self.option, self.password, self.user, self.ipaddress, command), shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE) 

Но я получаю ошибку для функции Key () для процесса line1. Ниже приведена ошибка:

 File "C:\Python34\lib\subprocess.py", line 859, in __init__ Error: restore_signals, start_new_session) Error: File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child Error: startupinfo) Error: FileNotFoundError: [WinError 2] The system cannot find the file specified 

One Solution collect form web for “FileNotFoundError: python 3.4”

В Windows для использования echo в подпроцессе вам нужно будет использовать shell=True . Это связано с тем, что эхо не является отдельным исполняемым файлом, а встроенной командой командной строки Windows. Пример –

 process1 = subprocess.Popen(command1,stdout=subprocess.PIPE,shell=True) 

Кроме того, обратите внимание, что вы должны использовать shell=True когда это абсолютно необходимо (как в этом случае, использовать echo в окнах в подпроцессе).


Хотя в целом вы можете напрямую передать y во вторую команду, используя PIPE и .communicate() . Пример –

 def key(self): command2 = ['plink', '-ssh', self.option, '-pw', self.password, '%s@%s'%(self.user, self.ipaddress), '\"exit\"'] process2 = subprocess.Popen(command2,stdin=subprocess.PIPE,stdout=subprocess.PIPE) output, _ = process.communicate(b'y') 
  • Почему super () не работает со статическими методами, отличными от __new__?
  • Поиск эквивалента FileNotFoundError в Python 2
  • Когда вызывать Python super () .__ init __ ()?
  • фотографирование веб-камеры в python 3 и windows
  • python asyncio add_done_callback с async def
  • В чем разница между raw_input () и input () в python3.x?
  • Как достичь форматирования стиля sprintf для объектов байтов в python 3?
  • Создание вложенной структуры Json с несколькими ключевыми значениями в Python от Json
  • Python - лучший язык программирования в мире.