2015-09-04 243 views
2

我试图远程进入交互式shell并在Python 2.7中导入模块。我挂了。到目前为止,这是我的本钱:使用RPYC导入模块

import rpyc 
import socket 

hostname = socket.gethostname() 
port = 12345 

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

会话存在

​​

我想发出一个import sys这样我就可以添加其他模块的路径。然而,当我尝试看看如果我得到以下路径存在模块:

​​

我需要远程执行什么是以下几点:

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

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

是否有可能有rpyc问题上面内容?在此先感谢

回答

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')