Python编译器调用另一个Python编译器来执行脚本(从一台独立的机器到另一台机器执行脚本)

Python编译器调用另一个Python编译器来执行脚本(从一台独立的机器到另一台机器执行脚本),python,Python,我知道问题的标题很奇怪 我有两个虚拟机。第一台机器的资源有限,而第二台机器和普通机器一样有足够的资源。第一台机器将接收来自外部设备的信号。此信号将触发python编译器执行脚本。脚本很大,第一台机器没有足够的资源来执行它。 我可以将脚本复制到第二台机器上运行它,但是我不能让第二台机器接收外部信号。我想知道是否有办法让第一台机器上的编译器(一旦接收到外部信号)调用第二台机器上的编译器,从而让第二台机器上的编译器执行脚本?因此,第二个编译器应该使用第二个机器资源。请检查所附图片。 假设两台机器之间建

我知道问题的标题很奇怪

我有两个虚拟机。第一台机器的资源有限,而第二台机器和普通机器一样有足够的资源。第一台机器将接收来自外部设备的信号。此信号将触发python编译器执行脚本。脚本很大,第一台机器没有足够的资源来执行它。 我可以将脚本复制到第二台机器上运行它,但是我不能让第二台机器接收外部信号。我想知道是否有办法让第一台机器上的编译器(一旦接收到外部信号)调用第二台机器上的编译器,从而让第二台机器上的编译器执行脚本?因此,第二个编译器应该使用第二个机器资源。请检查所附图片。 假设两台机器之间建立了连接,并且它们可以看到对方,并且第二台机器具有脚本的副本。我只需要将(执行)传递给第二台机器并使其使用自己的资源的命令。 要做到这一点,您应该研究体系结构

您可以通过在每台机器之间使用和发送服务器请求,或者类似的方式来实现这一点,这将允许您在机器之间创建“桥梁”,并在它们之间调用函数(似乎您更感兴趣)。
nameko
示例:

机器2(资源密集型脚本的执行者):

从nameko.rpc导入rpc
类内容(对象):
@rpc
def示例(自我):
return“功能在机器2上运行”
您可以通过Nameko shell运行上述脚本,如文档中所述

机器1:

从nameko.standalone.rpc导入ClusterRpcProxy
#这是机器2将要运行的amqp服务器。
配置={
“AMQP_URI”:AMQP_URI#例如。“pyamqp://guest:guest@“本地主机”
}
将ClusterRpcProxy(配置)作为群集\u rpc:
cluster_rpc.Stuff.example()#函数在计算机2上运行。
这里有更多信息。

您应该研究实现这一点的体系结构

您可以通过在每台机器之间使用和发送服务器请求,或者类似的方式来实现这一点,这将允许您在机器之间创建“桥梁”,并在它们之间调用函数(似乎您更感兴趣)。
nameko
示例:

机器2(资源密集型脚本的执行者):

从nameko.rpc导入rpc
类内容(对象):
@rpc
def示例(自我):
return“功能在机器2上运行”
您可以通过Nameko shell运行上述脚本,如文档中所述

机器1:

从nameko.standalone.rpc导入ClusterRpcProxy
#这是机器2将要运行的amqp服务器。
配置={
“AMQP_URI”:AMQP_URI#例如。“pyamqp://guest:guest@“本地主机”
}
将ClusterRpcProxy(配置)作为群集\u rpc:
cluster_rpc.Stuff.example()#函数在计算机2上运行。

这里有更多。

嗯,解决这个问题有很多方法

如果您想要一个纯python的解决方案,您可以签出

  • 迪皮
  • 或者达斯克
如果您想要一个健壮的解决方案(我在我的家庭计算集群上使用的解决方案,但我对您的问题要求过高),您可以使用

  • 斯劳姆。SLURM基本上是一种将多台计算机串成一台“超级计算机”的方法
为了一个半快速的,骇人的解决方案。你可以编写一个微服务。基本上,“弱”计算机将接收消息,然后向“强”计算机发送http请求。您的强计算机将包含实际程序、计算结果,并将结果传回“弱”计算机

  • 烧瓶是一种简单、轻便的解决方案
所有这些解决方案都需要某种类型的网络。至少,计算机需要在同一局域网上,或者两者都可以通过网络访问


还有许多其他方法没有提到。例如,您可以导出NFS(netowrk文件存储),让一台计算机将文件放入共享文件夹,另一台计算机对该文件执行操作。我相信还有很多其他人为的方法来完成这项任务:)。如果您愿意,我很乐意详细介绍一种特定的方法。

嗯,有很多方法可以解决这个问题

如果您想要一个纯python的解决方案,您可以签出

  • 迪皮
  • 或者达斯克
如果您想要一个健壮的解决方案(我在我的家庭计算集群上使用的解决方案,但我对您的问题要求过高),您可以使用

  • 斯劳姆。SLURM基本上是一种将多台计算机串成一台“超级计算机”的方法
为了一个半快速的,骇人的解决方案。你可以编写一个微服务。基本上,“弱”计算机将接收消息,然后向“强”计算机发送http请求。您的强计算机将包含实际程序、计算结果,并将结果传回“弱”计算机

  • 烧瓶是一种简单、轻便的解决方案
所有这些解决方案都需要某种类型的网络。至少,计算机需要在同一局域网上,或者两者都可以通过网络访问


还有许多其他方法没有提到。例如,您可以导出NFS(netowrk文件存储),让一台计算机将文件放入共享文件夹,另一台计算机对该文件执行操作。我相信还有很多其他人为的方法来完成这项任务:)。如果您愿意的话,我很乐意详细介绍一个特定的方法。

编译器在这里不是合适的词,至少CPython是在CPython运行时的解释器上执行的。在任何情况下,您似乎在问如何从另一个Pyt执行Python进程