如何在远程机器上运行本地python脚本

use*_*569 4 python

我在我的本地机器上有一个python脚本.有没有办法在远程机器上运行这个脚本.我的意思是python脚本应该在本地机器上,但执行应该在远程机器上进行,并将输出返回到本地机器.

Mik*_*rns 6

pathos软件包具有可以轻松与远程计算机进行交互的工具,所有这些工具都直接来自python ...您还可以轻松捕获stdout或其他管道响应,并将它们返回到您的调用脚本.

所以,假设您有一个如下所示的本地脚本hello.py:

# 'hello.py'
import os
print os.system('hostname')
Run Code Online (Sandbox Code Playgroud)

他们可以推送脚本并像这样执行它:

>>> import pathos
>>> c = pathos.core.copy('hello.py', destination='guido.remote.com:~/hello.py')
>>> s = pathos.core.execute('python hello.py', host='guido.remote.com')
>>> print s.response()
guido
0
>>> s.pid()
37429
Run Code Online (Sandbox Code Playgroud)

还有ssh-tunneling,设置守护进程,远程端口pickle,以及处理杀死远程进程......如果你需要那些东西.

pathos提供远程命令的抽象,缺省值为sshscp...但它很容易看到它在做什么.

>>> s.message
'ssh -q guido.remote.com "python hello.py"'
>>> c.message
'scp -q -r hello.py guido.remote.com:~/hello.py'
Run Code Online (Sandbox Code Playgroud)

获取pathos此:https://github.com/uqfoundation


ste*_*eve -2

如果要在远程计算机上执行 python 脚本,该脚本必须驻留在远程计算机上。

如果您可以通过 SSH 访问远程计算机,则需要首先将文件从本地计算机复制到远程计算机:

scp -r /this/file/location/my_script.py user@server:/home/newlocation
Run Code Online (Sandbox Code Playgroud)

然后只需通过 SSH 连接到远程计算机并运行脚本即可。

ssh user@server
cd /home/newlocation
python my_script.py
Run Code Online (Sandbox Code Playgroud)