如何将python函数复制到远程计算机然后执行它?

Hug*_*ugh 7 python parsing remote-execution

我正在尝试在Python 3中创建一个允许我在远程计算机上轻松执行函数的构造.假设我已经有了一个python tcp服务器,它将运行它收到的函数,在远程服务器上运行,我现在正在寻找使用像这样的装饰器

@execute_on(address, port)
Run Code Online (Sandbox Code Playgroud)

这将创建执行正在装饰的函数所需的必要上下文,然后将函数和上下文发送到远程机器上的tcp服务器,然后执行它.首先,这有点理智吗?如果没有,你能推荐一个更好的方法吗?我做了一些谷歌搜索,但没有找到满足这些需求的东西.

我对tcp服务器和客户端有一个快速而又脏的实现,所以相当确定它会工作.我可以得到一个字符串表示函数(例如func)传递给装饰器

import inspect
string = inspect.getsource(func)
Run Code Online (Sandbox Code Playgroud)

然后可以将其发送到可以执行的服务器.问题是,如何获取该函数执行所需的所有上下文信息?例如,如果func定义如下,

import MyModule
def func():
    result = MyModule.my_func()
Run Code Online (Sandbox Code Playgroud)

MyModule需要在全局上下文中使用func,或者在远程服务器上使用funcs本地上下文.在这种情况下,这是相对微不足道的,但根据何时以及如何使用import语句,它会变得更加复杂.在Python中有一种简单而优雅的方法吗?我现在提出的最好的方法是使用ast库来提取所有import语句,使用inspect模块获取这些模块的字符串表示,然后在远程服务器上重建整个上下文.不是特别优雅,我可以看到很多错误的余地.

谢谢你的时间

Jon*_*age 0

你这样做的最终目标是什么?从您的描述中,我看不出为什么您不能创建一个简单的消息传递类并发送该类的实例来命令远程计算机执行“操作”......?

无论您做什么,您的远程计算机都需要 Python 源代码来执行,那么为什么不将代码分发到那里然后运行它呢?您可以创建一个简单的服务器,它接受一些 python 源文件,提取它们导入相关模块,然后运行命令?