- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在应用程序中使用 rpyc,但遇到了一个小问题。
我只是想知道是否可以更新远程属性?
我有一个测试服务器:
import rpyc
from rpyc.utils.server import ThreadedServer
class Test:
def __init__(self):
self._v = 0
@property
def V(self):
return self._v
@V.setter
def V(self, value):
self._v = value
class TestService(rpyc.Service):
def exposed_Test(self):
return Test()
if __name__ == '__main__':
t = ThreadedServer(TestService, port = 2942,
protocol_config={"allow_all_attrs":True})
t.start()
在 ipython 控制台中:
In [1]: import rpyc
In [2]: conn = rpyc.connect('localhost', 2942, config={'allow_all_attrs':True})
In [3]: test = conn.root.Test()
In [4]: test.V
Out[4]: 0
In [5]: test.V = 2
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-d3ae0dcd1075> in <module>()
----> 1 test.V = 2
<blah blah traceback>
AttributeError: cannot access 'V'
是否可以更新远程属性?
最佳答案
是的,默认情况下会阻止设置远程属性,但如果设置allow_setattr=True
,则允许设置。
(如果您无论如何都设置 allow_setattr=True
,则设置 allow_delattr=True
也有意义)
t = ThreadedServer(TestService, port = 2942,
protocol_config={"allow_all_attrs":True,
"allow_setattr": True,
"allow_delattr": True,})
参见the docs .
<小时/>您还可以通过直接访问远程对象的 __dict__
来绕过 setattr 保护(当然第一个解决方案要好得多):
test.__dict__['V'] = 2
关于python - 使用 rpyc 更新远程对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34844127/
在使用 RPyC 服务时如何将标准输出重定向到我的本地客户端?我知道通过使用 使用 Classic RPyC 是可能的 c = rpyc.classic.connect(ip) c.modules.s
考虑一下 Python 脚本将命令发送到外部设备(比方说,通过串行端口)的情况。该脚本驻留在某些 Linux 机器上,该设备对某些命令使用react。这个想法是通过“发送”命令到包含设备生成的转储的文
我有少量的 rpyc 服务器,它们仅部分具有相同的公开功能。 在客户端上,事件应该转发到所有已连接并对特定事件感兴趣的服务器。 我想从服务器连接对象获取服务器上可用的公开函数的列表。 到目前为止我发现
我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足一个用户的需求。有什么方法可以让 RPyC 强制执行一次只有一个用户可以访问吗? 最佳答案 我不确定这是否有效(或有效),但您可以
我正在使用 rpyc 在 python 中编写一个程序。我的目标是创建一个简单的服务器,它接受来自客户端的数据字节(字符串)。我对 python 和 rpyc 都很陌生。这是我的 server.py
我试图将一大堆逻辑封装到一个 Python 函数中,并将其作为参数传递给我想在服务器上执行它的远程 RPyC 方法。但 RPyC 将函数视为回调并在本地执行。有办法解决吗?我可以强制服务器在服务器而不
我想在 RPyC 中的两个客户端和一个服务器之间建立连接,我想从客户端 1 调用服务器的方法,在服务器的方法中调用客户端 2 的方法,这是我的代码: import rpyc #server: clas
我最近在我的 Ubuntu 14.04 虚拟机上安装了 rpyc: pip install rpyc 我找不到可用于启动服务器的文件。我看了很多地方,但无济于事。 最佳答案 它只是来自命令行的rpyc
尝试将数据库查询结果提供给临时客户端请求,但不想为每个单独的查询打开连接。我不确定我做的是否正确。 当前的解决方案在“服务器”端是这样的(为清楚起见,已大幅缩减): import rpyc from
我需要通过 rpyc 运行命令并获取该命令的结果。 但是每当我运行该命令时,它都会打印在远程服务器上,并且无法带来结果。 我正在做的事情如下: import os, sys import rpyc c
我在应用程序中使用 rpyc,但遇到了一个小问题。 我只是想知道是否可以更新远程属性? 我有一个测试服务器: import rpyc from rpyc.utils.server import Thr
也许有人可以给我一些如何将 Rpyc 安装到 PyScripter 的指南。我将 PyScripter 1.9.9.7 与 Python 2.6 结合使用。我试图用谷歌搜索它并找到了一些说明,但仍然没
我正在尝试使用 RPyC 将对象作为参数从客户端传递到服务器。但是服务器无法访问该对象,我收到一个 AttributeError。 服务器代码: class AgentService(rpyc.Ser
我正在尝试远程运行 psutil 命令: import os, sys, time import rpyc import psutil command = """def rpcexecute():
我见过使用 teleport_function 传递函数,有什么方法可以传递类方法吗??或者我能否以任何其他方式远程执行我的类对象 我可以通过将类作为一项服务来解决这个问题。但这并不能完全满足我在项目
假设我有一个服务: import rpyc class MyService(rpyc.Service): my_dict = {} def exposed_put(self, key,
所以现在我有 rpyc 客户端 A 来抓取数据,当它找到特定数据时,它会将它发送到我的 rpyc 服务器,然后存储该服务器。可以说我也有 rpyc 客户端 B、C 和 D 连接到我的 rpyc 服务器
我正在使用 RPyc 在远程计算机上执行命令。当我运行以下代码时出现错误: cmd = ['clonetst.exe', 'C:\\Users\\pqalinux\\Desktop\\Flowcont
我想使用一个只能在远程 rpyc 服务器上访问的 python 模块。以下两种访问远程机器模块的方式有区别吗: """在客户端:""" my_local_mod_ref = my_rpyc_conne
我正在寻找 Python 的远程过程调用引擎,我发现 PyRo (Python Remote Object)和 RPyC (Remote Python Call) 都是我正在寻找的东西。 但是,我很想
我是一名优秀的程序员,十分优秀!