【发布时间】:2012-10-23 15:05:26
【问题描述】:
我在 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 命令拆分为列表并传递。没有帮助。
我尝试通过subprocess.call() 运行其他“本地”(Windows)命令并尝试设置环境。它工作正常。
我尝试在远程 linux 机器上运行其他命令(例如ls)。同样,subprocess.call() 工作正常,只要我不尝试设置环境。
我做错了什么?我可以在远程机器上为 python 脚本设置环境吗?任何帮助将不胜感激。
【问题讨论】:
标签: python ssh subprocess env