2012-08-29 113 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('.') 
相關問題