gpt4 book ai didi

python - 在不使用经典 RPyC 的情况下将 RPyC 的标准输出重定向到本地客户端

转载 作者:太空宇宙 更新时间:2023-11-04 01:16:56 36 4
gpt4 key购买 nike

在使用 RPyC 服务时如何将标准输出重定向到我的本地客户端?我知道通过使用

使用 Classic RPyC 是可能的
c = rpyc.classic.connect(ip)

c.modules.sys.stdout = sys.stdout

有没有人有我可以在我的客户端使用的等效代码,用于如下所示的用户定义服务

class remoteServer(rpyc.Service):

def on_connect(self):
# code that runs when a connection is created
# (to init the serivce, if needed)

if not os.path.exists(self.LOG_DIRECTORY_PATH):
os.mkdir(self.LOG_DIRECTORY_PATH);
file = open(self.LOG_FILENAME, 'a');
else:
print 'Directory: ', self.LOG_DIRECTORY_PATH, 'already exists';

if __name__ == "__main__":
server = ThreadedServer(remoteServer, port = 12345)
server.start()

最佳答案

我会用

class RedirectingService(rpyc.Service):
def exposed_redirect(self, stdout):
sys.stdout = stdout
def exposed_restore(self):
sys.stdout = sys.__stdout__

然后

c = rpyc.connect("server", config={"allow_public_attrs":True})
c.redirect(sys.stdout)
...
c.restore()

看看http://rpyc.readthedocs.org/en/latest/api/core_protocol.html#rpyc.core.protocol.DEFAULT_CONFIG对于配置选项。经典模式基本上将所有内容都设置为 True,这可能不安全,但您可以控制要显式设置的选项。

关于python - 在不使用经典 RPyC 的情况下将 RPyC 的标准输出重定向到本地客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23892351/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com