首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RPYC导入模块

使用RPYC导入模块
EN

Stack Overflow用户
提问于 2015-09-05 05:39:07
回答 1查看 1.8K关注 0票数 2

我正在尝试远程进入一个交互式shell,并在python2.7中导入模块。我要挂断了。到目前为止,我得到的是:

代码语言:javascript
复制
import rpyc
import socket

hostname = socket.gethostname()
port = 12345

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

会话存在

代码语言:javascript
复制
>>>session
<blah object at 0xMore-Goop>

我想发出一个import sys,这样我就可以向path中添加另一个模块。但是,当我尝试查看path中是否存在模块时,我得到了以下结果:

代码语言:javascript
复制
>>>connections.modules
AttributeError: 'Connection' object has no attribute 'modules'

我需要远程执行的代码如下:

代码语言:javascript
复制
import sys
sys.path.append(path/to/import)
import file

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

有没有可能让rpyc发布上述内容?提前感谢

EN

回答 1

Stack Overflow用户

发布于 2015-09-05 15:53:11

您可以将以下方法添加到服务中:

代码语言:javascript
复制
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)

并像这样访问它:

代码语言:javascript
复制
connections.root.add_to_syspath('path/to/import')
file = connections.root.import_module('file')
file.logger(session, 'path/to/log')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32406949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档