2012-08-29 2 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() 

나는 내가 클라이언트 측의 OS 정보를 얻을 수 있습니다 알고 파이 객체

# 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('.') 
관련 문제