2

インタラクティブシェルにリモート接続し、Python 2.7 内でモジュールをインポートしようとしています。私はハングアップしています。これまでのところ、これは私が持っているものです:

import rpyc
import socket

hostname = socket.gethostname()
port = 12345

connections = rpyc.connect(hostname,port)
session = connections.root.getSession()

セッションが存在します

>>>session
<blah object at 0xMore-Goop>

import sys別のモジュールをパスに追加できるように、を発行したいと考えています。ただし、パスにモジュールが存在するかどうかを確認しようとすると、次のようになります。

>>>connections.modules
AttributeError: 'Connection' object has no attribute 'modules'

リモートで実行する必要があるのは次のとおりです。

import sys
sys.path.append(path/to/import)
import file

log = file.logger(session, path/to/log)

上記の内容をrpycに発行させることは可能でしょうか?前もって感謝します

4

1 に答える 1

0

次のメソッドをサービスに追加できます。

import sys, importlib, rpyc
...

class MyService(rpyc.Service):
    ...
    def exposed_import_module(self, mod):
        return importlib.import_module(mod)
    def exposed_add_to_syspath(self, path):
        return sys.path.append(path)

次のようにアクセスします。

connections.root.add_to_syspath('path/to/import')
file = connections.root.import_module('file')
file.logger(session, 'path/to/log')
于 2015-09-05T07:53:11.230 に答える