我正在使用rpyc在python中编写一个程序。我的目标是创建一个简单的服务器,接受来自客户端的字节数据(字符串)。我对python和rpyc都是新手。以下是我的server.py代码:
from rpyc.utils.server import ThreadedServer # or ForkingServer
class MyService(rpyc.Service):
# My service
pass
if __name__ == "__main__":
server = ThreadedServer(MyService, port = 18
我正在使用rpyc python服务器处理通过电子邮件发送的请求。我正在将它们加载到Excel吸墨器中,其想法是一旦收到新的请求,就通过运行宏来自动更新excel。
但是,我不能初始化工作簿对象。下面的代码可以正常打开工作簿(startExcel),但是当我运行RunThis方法时,它输出0,因为工作簿中的内容尚未初始化。
有什么办法可以解决这个问题吗?
from threading import Thread, Lock
import rpyc
from rpyc.utils.server import ThreadedServer
import win32com.client
from w
正如所解释的,使用RPyC 2重定向stdio/stdin非常简单。这意味着在服务器中执行的“打印”命令将在客户端显示打印的字符串。
正如解释的那样,RPyC 2是不安全的,不推荐使用,但我找不到如何使用RPyC 3在客户端打印。
有谁知道如何做到这一点吗?
编辑:
例如,这是我的服务器的代码:
import rpyc
import time
from rpyc.utils.server import ThreadedServer
class TimeService(rpyc.Service):
def exposed_print_time(self):
for i
我有两台使用python rpyc的机器,一台是服务器(ip:10.0.3.120),另一台是客户机(ip:10.0.3.197)。守则如下:
服务器 (ip:10.0.3.120)
from rpyc import Service
from rpyc.utils.server import ThreadedServer
class TestService(Service):
def exposed_test(self, num):
return num + 1
sr = ThreadedServer(TestService, port=9999, auto_re
我正在尝试使用RPyC在google上的2个VM实例之间建立一个客户机-服务器连接。我有以下代码:
服务器端:
import rpyc
class MyService(rpyc.Service):
def on_connect(self):
# code that runs when a connection is created
# (to init the serivce, if needed)
pass
def on_disconnect(self):
# code that runs when the
我试图在rpyc服务中使用多处理包,但当我试图从客户端调用公开的函数时,获取ValueError: pickling is disabled。我了解到,multiprocesing包使用泡菜在进程之间传递信息,并且rpyc中不允许酸洗,因为它是一个不安全的协议。因此,我不确定在rpyc中使用多重处理的最佳方式(或者是否有)。如何利用rpyc服务中的多处理?以下是服务器端代码:
import rpyc
from multiprocessing import Pool
class MyService(rpyc.Service):
def exposed_RemotePool(self,
我正在为客户端服务器应用程序使用RPyC。
在调用exposed_variable ()方法时,我尝试更改exposed_change的值。我收到"UnboundLocalError:在赋值前引用的局部变量'exposed_variable‘“错误。
但是,如果我使exposed_variable是全局的(在我尝试修改它之前,就像在中一样),我就会得到"NameError: name 'exposed_variable‘是没有定义的“。
我遗漏了什么?
这是我的服务器:
from rpyc.utils import server
import rpyc
impo
我目前正在RPYC服务器上生成数据帧,以及在请求时将其发送到客户端的内容。当我通过服务器发送它时,它是作为netref对象发送的。我希望能够将其作为本地变量存储在客户端,而不是作为引用。似乎RPYC有一个内置的pickle协议,我曾尝试使用它,但收效甚微。最终目标是能够在客户端绘制此数据帧。数据帧的数据采集是特定于硬件的,出于当前问题的考虑,我只是将样本数据作为csv加载。
以下是服务器代码
import rpyc
from rpyc.utils.server import ThreadedServer # or ForkingServer
import pandas as pd
class
嗨,我正在使用rpyc模块连接到一个远程机器,并在它上执行一些东西。在处理过程中,远程机器可能会记录一些内容,因此我需要将其重定向到本地机器。
为了重定向日志,我遇到了这个奇怪的异常:
import rpyc
c = rpyc.classic.connect("localhost")
l = c.modules["logging"].getLogger("foo")
for h in l.handlers:
print h
此循环导致引发异常:
2017-03-19 11:38:29,180 - protocol.py :31
如何在使用RPyC服务时将标准输出重定向到本地客户端?我知道当使用经典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 need
在连接客户端时,我们可以使用以下命令指定服务器IP/端口:
c = rpyc.connect("127.0.0.1",port=18812)
但是,我想知道是否有一种方法可以指定客户端将使用哪个端口,或者我们是否可以确定客户端每次尝试连接到服务器时将使用哪个端口。
如果在服务器上启用了日志记录,则可以确定这一点:
INFO:MASTERSERVER/18812:server started on [127.0.0.1]:18812
INFO:MASTERSERVER/18812:accepted ('127.0.0.1', 62372) with fd 664
我有一个公式,大约要用0.5s来计算。但是,我需要用不同的值执行这个计算100万次。公式的一个例子(简化):
y = a + b
其中我有100万a和b的组合,这些组合都需要计算。这100万个组合保存在一个名为combinations的列表中。我和Python一起工作。
我的想法是每100.000次计算就有一个AWS实例,所以在本例中我需要10,然后将combinations列表分成10部分(part1 = combinations[:100000]等)。然后,我必须向每个AWS实例发送组合的子集。
但我怎么才能做到最好呢?我的想法是拥有一个可供所有实例访问的共享卷,并在该卷上放置了我通过SS