我尝试在自动测试中使用Pyro4,但是现在我对Pyro4的某些功能感到困惑。
是否存在某种通过Pyro4对象获取系统信息的方法。

在我的想法中,我公开了一个可以获取系统信息的pyro对象,远程计算机可以使用该对象显示系统信息。但是在我的代码上,远程计算机始终显示服务器信息。我猜我误解或误用了Pyro4

对不起这个愚蠢的问题,我是Pyro4的新手。以下是我的示例代码。
服务器公开pyro对象

# Server.py
#! /usr/bin/env python

import Pyro4
import os

class Ex(object):
    def run(self):
        print os.uname()


if __name__ == "__main__":
    daemon = Pyro4.Daemon()
    ns     = Pyro4.locateNS()
    uri = daemon.register(Ex())
    ns.register("ex", uri)
    print uri
    daemon.requestLoop()


和客户端使用Pyro对象

# Remote
#! /usr/bin/env python

import Pyro4
if __name__ == "__main__":
    uri = raw_input("input the uri> ")
    fn = Pyro4.Proxy(uri)
    fn.run()



我知道我可以在客户端上获取操作系统信息,但是我想使用Pyro对象来获取信息,而客户端自己执行此操作。

最佳答案

我得到了答案!

只需使用Pyro4.utils.flame。该模块可以提供在远程计算机上使用该模块或功能的能力。

以下是示例代码:

远程机器

python -Wignore -m Pyro4.utils.flameserver --host <yourIP> --port 9999


主人

#! /usr/bin/env python

import Pyro4.utils.flame

if __name__ == "__main__":
    flame = Pyro4.utils.flame.connect("192.168.16.29:64024")
    os = flame.module("os")
    print os.listdir('.')

关于python - 使用Pyro4获取系统信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12180969/

10-09 15:55