1

自動テストで 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()

psクライアント側でOS情報を取得できることはわかっていますが、クライアントがこれを行う代わりに、Pyroオブジェクトを使用して情報を取得したいと考えています。

4

1 に答える 1

1

答えが出ました!

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('.')
于 2012-08-30T02:36:35.027 に答える