2012-08-29 185 views
1

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

在我的想法中,我公开了一个可以获取系统信息的pyro对象,远程机器可以使用此对象来显示系统信息。但是在我的代码中,远程机器总是显示服务器信息。我想我误解或滥用Pyro4对不起,这是一个愚蠢的问题,我是Pyro4的新手。以下是我的示例代码。 服务器暴露焦对象

# 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() 

,并使用火焰兵对象

# Remote 
#! /usr/bin/env python 

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

PS 我知道我可以在客户端的操作系统信息的客户端,但我想用火焰兵对象来获取信息,而不是客户端本身。

回答

0

我得到了答案!

只需使用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('.') 
相关问题