如何通过 ssh 远程 运行 一个 python3 脚本

How to run a python3 script remotely trough ssh

我正在尝试 运行 通过 ssh 远程编写 python3 脚本,首先我想知道如果我正在尝试 运行 的机器这是否可行上的脚本没有 python3 解释器只有 python.

的 2001 版本

而且我正在使用以下命令来 运行 脚本,但它不起作用:

spawn sh -c "ssh -oPort=$port $ip /usr/bin/env < /home/pythonscript

Pythonscript 包含一个用于输出连接的 COM 端口的命令,如下所示:

import serial.tools.list_ports
print([comport.device for comport in serial.tools.list_ports.comport()])

我从这里得到的输出是一堆属于我正在连接的机器的系统信息,比如 HOSTNAME,USER,MACHTYPE,MAIL,SHELL,OSTYPE

我如何从我正在执行的命令中获得预期的输出

感谢所有帮助

首先,您需要在每台服务器上安装 python3,您将 运行 安装它。您还需要安装 pip3 和 pyserial。如果你愿意,你也可以使用 virtualenv,但我会把它留给你。

在该脚本中发现了一个小错误。根据最新版本无论如何它是 "comports" 而不是 "c​​omport: https://pyserial.readthedocs.io/en/latest/tools.html

更新版本:

from serial.tools.list_ports import comports
print([comport.device for comport in comports()])

我能够 运行 只需执行以下操作即可远程

ssh localhost "python3 /home/user/projects/stack_overflow/56900773_remote_python_ssh/pythonscript.py"

将本地主机更改为您想要的任何服务器,并将我的路径换成您脚本的完整路径。

当我 运行 该命令时,我只得到一个空白列表,可能是因为我没有comports :)