我在 Windows 机器上运行 python 脚本来调用远程 linux 机器上的另一个 python 脚本。我正在使用带有 ssh 的 subprocess.call 来执行此操作,如下所示:
subprocess.call('ssh -i <identify file> username@hostname python <script_on_linux_machine>')
这工作正常。
但是,如果我想设置一些环境变量,如下所示:
subprocess.call('ssh -i <identify file> username@hostname python <script_on_linux_machine>', env={key1:value1})
它会失败。我收到以下错误:
ssh_connect: getnameinfo failed
ssh: connect to host <hostname> port 22: Operation not permitted
255
我尝试将 ssh 命令拆分为列表并传递。没有帮助。我试图通过运行其他“本地”(windows)命令subprocess.call()
并尝试设置环境。它工作正常。我尝试ls
在远程 linux 机器上运行其他命令(例如 )。再次,subprocess.call()
只要我不尝试设置环境,它就可以正常工作。
我究竟做错了什么?我可以在远程机器上为 python 脚本设置环境吗?任何帮助将不胜感激。