Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用子流程从python执行时,ssh未被识别为命令?_Python_Python 3.x_Ssh_Subprocess - Fatal编程技术网

在使用子流程从python执行时,ssh未被识别为命令?

在使用子流程从python执行时,ssh未被识别为命令?,python,python-3.x,ssh,subprocess,Python,Python 3.x,Ssh,Subprocess,这是我的密码- import subprocess import sys HOST="xyz3511.uhc.com" # Ports are handled in ~/.ssh/config since we use OpenSSH COMMAND="uptime" ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND], shell=True, s

这是我的密码-

import subprocess
import sys

HOST="xyz3511.uhc.com"
# Ports are handled in ~/.ssh/config since we use OpenSSH
COMMAND="uptime"

ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],
                       shell=True,
                       stdout=subprocess.PIPE,
                       stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if result == []:
    error = ssh.stderr.readlines()
    print (sys.stderr, "ERROR: %s" % error)
else:
    print (result)
这就是我得到的错误-

错误: [b”'ssh'未被识别为内部或外部命令,\r\n“, b'可操作的程序或批处理文件。\r\n']


不知道我在这里做错了什么。还有,我没有提到任何港口。我只想使用子进程并连接到远程服务器,执行一个简单的命令,如
ls
。Python版本是3.x.

显然,这种情况发生在python3中。 在此链接中找到解决方法:


您能够在终端上显式地使用ssh吗?我的意思是不是在Python程序中,您是在没有安装SSH客户端(名称为
SSH
)的Windows计算机上执行此操作的?是的,我在中使用此程序windows@alfe我在安装了SSH的windows计算机上遇到同样的错误(SSH命令在cmd中工作,但在子进程中不工作),请确保找到SSH命令。可以相应地设置PATH变量的等效值,或者只使用
ssh
可执行文件的完整路径,而不只是
ssh
,即。E类似于
C:\some\path\to\ssh
system32 = os.path.join(os.environ['SystemRoot'], 'SysNative' if platform.architecture()[0] == '32bit' else 'System32')
ssh_path = os.path.join(system32, 'OpenSSH/ssh.exe')
out1, err1 = Popen([ssh_path, "pi@%s"%self.host, "%s"%cmd],
              shell=False,
              stdout=PIPE, 
              stderr=PIPE).communicate()