gpt4 book ai didi

python - 远程执行任意 python 代码——可以做到吗?

转载 作者:太空狗 更新时间:2023-10-30 00:30:49 25 4
gpt4 key购买 nike

我正在研究一个网格系统,它有许多非常强大的计算机。这些可以用来非常快速地执行 python 函数。我的用户有许多 python 函数,这些函数在工作站上需要很长时间才能计算,理想情况下,他们希望能够在远程强大的服务器上调用一些函数,但看起来好像是在本地运行。

Python 有一个名为“apply”的旧函数——现在它几乎没用了,因为 python 支持扩展调用语法(例如 **arguments),但是我需要实现一些像这样工作的东西:

rapply = Rapply( server_hostname ) # Set up a connection
result = rapply( fn, args, kwargs ) # Remotely call the function
assert result == fn( *args, **kwargs ) #Just as a test, verify that it has the expected value.

Rapply 应该是一个类,可用于在远程服务器上远程执行一些任意代码(fn 可以是字面上的任何内容)。它将发回 rapply 函数将返回的结果。 “结果”的值应该与我在本地调用该函数时的值相同。

现在让我们假设 fn 是一个用户提供的函数,我需要某种方式将它通过网络发送到执行服务器。如果我能保证 fn 总是简单的东西,它可能只是一个包含 python 源代码的字符串……但如果它不是那么简单怎么办?

如果 fn 可能具有本地依赖性怎么办:它可能是一个简单的函数,它使用在不同模块中定义的类,是否有封装 fn 和所有内容的方法fn 需要哪个不是标准库?理想的解决方案不需要该系统的用户对 Python 开发有太多了解。他们只是想编写自己的函数并调用它。

澄清一下,我对讨论可以使用哪种网络协议(protocol)来实现客户端和服务器之间的通信不感兴趣。我的问题是如何将函数及其依赖项封装为可以序列化和远程执行的单个对象。

我也对在远程服务器上运行任意代码的安全隐患不感兴趣——我们只是说这个系统纯粹是为了研究而设计的,而且它在一个防火墙严密的环境中。

最佳答案

看看PyRO (Python Remote objects)它有能力在集群中的所有计算机上设置服务,并直接调用它们,或通过名称服务器和发布-订阅机制间接调用它们。

关于python - 远程执行任意 python 代码——可以做到吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/536370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com