远程将输入发送到正在运行的Python脚本

时间:2017-07-23 18:31:08

标签: python raspberry-pi

我会尝试尽可能清楚地了解我的目标。 我在我的Raspberry Pi上有一个正在运行的Python脚本,我希望多个用户远程发送输入到脚本(通过SSH或其他任何可能更好的工作)。 例如,如果我运行此脚本:

Name = input ("Please type in your name. \n")
type (Name)
print ("Hello there" , Name)
time.sleep(3) # Pause for 3 seconds.

我希望用户从与Raspberry Pi连接到同一网络的设备远程发送名称到此脚本。

如果可能,我还想实现以下功能:

  • 将输出(也称为打印文本)发送回输入来自的特定设备。

  • 排队系统:如果多个用户同时发送名称,脚本将按顺序逐个获取名称。

我知道要求很多,但我真的很感激,如果有人能指导我朝着正确的方向开始这项工作,我真的很感激。 过去几天我已经搜索了很多,但我并没有真正遇到任何符合我需求的东西。

编辑:我在PYTHON 3上运行此功能

1 个答案:

答案 0 :(得分:0)

您希望通过网络直接与脚本进行通信的评论开辟了一个充满可能性的世界。你必须稍微修改你的Python脚本,因为它不再通过stdin / stdout进行通信。

我仍然不完全确定你希望如何工作,但我觉得基于RPC的解决方案可能对你有用。我建议你看一下Pyro4吗?基本上,它为您做的是使您能够进行普通的Python方法调用,但是通过网络,可以在另一台计算机上运行代码。

因此,您可以在Pi(需要连续运行)上设置服务器,该服务器接受来自其他计算机的远程调用,然后可以调用pi上的python代码。它可以并行或按顺序处理调用。你没有说你是否需要任何形式的安全性,但是提供了一些基本的安全功能(没有内置的加密或通过TLS进行通信,抱歉)。

A simple example is here还有更多在github上,所以你可以看看这是否符合你的要求?

另一个不需要第三方库的解决方案可能是编写一个调用脚本的WSGI http服务器,在pi上运行它,然后通过HTTP从其他计算机访问它。