问题标签 [pyro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
266 浏览

python-2.7 - Pyro4 不会抛出 ConnectionClosedError

我正在运行 pyro 4.31。当代理对象失去与远程对象的连接时(即服务器突然关闭时),我需要能够捕获异常。

所以我有这样的代码:

在某些时候,这可行,并且在连接丢失的情况下会抛出 ConnectionClosedError ,但现在即使服务器已关闭,它也会一直挂在等待命令上。我查看了 de Pyro4 代码,我必须说我看不到连接丢失如何解除阻塞等待命令,因为等待命令一直等到事件布尔值设置为 True,这在服务器关闭时是不可能做到的。如果服务器仍在运行,但我关闭了 pyro 守护程序并突然终止正在进行的进程,则会引发连接关闭错误,但我希望在整个服务器关闭时出现此错误。

不使用异步对象这仍然会产生同样的问题(只是挂起):

那么如何检测连接丢失的时间呢?

0 投票
2 回答
368 浏览

python - Pyron ns=True 不工作

我对 RPC 和 Pyro 完全陌生,并试图理解它的概念。我正在做它的网站示例,当我做 ns=True 时我的代码不起作用,尽管它在 ns=False.I 时工作'收到此错误:

Pyro4.errors.NamingError:无法找到名称服务器

当我使用 ipdb 进行调试时,我看到:

CommunicationError:无法连接:[Errno 111] 连接被拒绝

不启动守护进程的解决方案是什么?

0 投票
1 回答
135 浏览

python - PyRo 可以在生产中扩展吗?

我曾想过在生产环境中使用PyRo作为后端。所以我想问一下,

  • 是否支持集群?即,如果一个 PyRo 后端出现故障,它可以退回到使用另一个后端吗?如果名称服务器出现故障怎么办?

  • 是否在一些大型生产系统中为此目的采用了它?

0 投票
1 回答
1213 浏览

java - 如何使用pyro以对象为参数调用python

我已经设置了一个小型测试 java 应用程序,它在启动 pyro 服务器(在 python 中)后调用 python 脚本。它工作得很好,除了现在我想将 python 类作为参数传递给它的方法。我从python方面得到一个例外说:

根据 pyros 文档,一个类将被转换为 python 中的字典,但我什至无法做到这一点。

爪哇代码:

python服务器代码:

0 投票
1 回答
991 浏览

python - 如何编写一个装饰器来在上下文管理器中包装一些东西,它需要参数?

我已经看到如何在装饰器中使用上下文管理器以及如何将在装饰器中创建的对象传递给装饰函数以及带有参数的 python 装饰器,我正在尝试将两者结合起来......但我正在努力把我的头绕过去。

如果可能的话,我宁愿使用 func 工具@wrap装饰器来执行此操作,因为我知道是否会保留文档字符串。

我想做的是:

我不认为这种方式有效,该方法return_employee_names位于连接另一端的服务上。我应该只返回函数调用吗?如果是这样,我该如何传递参数呢?

0 投票
1 回答
1975 浏览

python - PYRO4 - Errno 10061 连接被拒绝

我正在尝试使用 PYRO4 和 Python 2.7 将客户端计算机连接到不同网络中的服务器 mashine

我的服务器代码是:

客户端代码是:

但是,当我运行服务器时,出现此错误:

我自 8 小时以来一直在寻找解决此问题的方法,但似乎不会永远解决。如果有人知道解决方案,请帮助我。

注意: 1. 我在路由器后面运行服务器,所以我将端口 5555 转发到我的私有 IP 地址。此外,我通过在线服务测试了该端口,并正确打开了它。

  1. 我关闭了防火墙和杀毒软件。
0 投票
0 回答
1774 浏览

uri - Python:Pyro:OpenOPC:连接失败

我正在尝试结合 Pyro 设置 OpenOPC for Python。每当我尝试连接到 OPC 服务器时,我都会收到此错误:

Pyro.errors.ProtocolError:连接失败

我查了一下,似乎 Pyro 正在将服务器绑定到环回适配器上(使其从外部不可见)。

到目前为止我已经尝试过:

编辑 etc/hosts 文件:

这没有用。

从 Pyro 编辑 configuration.py:

这也不起作用。同样在重新启动/重新启动 Pyro 名称服务器之后。

有谁知道我还能尝试什么让它工作?我还在我的 Windows 计算机(与 OPC 服务器相同)上运行了 OpenOPC 客户端,这很有效。我在我的 Windows 计算机和 Ubuntu 计算机上使用相同版本的 Pyro。

编辑:我还更改了 OpenOPCService.py:

这也行不通...

有人可以帮忙吗?我现在已经为此工作了一天多,到目前为止没有任何成功......

0 投票
1 回答
905 浏览

python - 当我尝试进行 Pyro4.proxy(uri) 调用时,我不断收到未连接错误

我遇到了 Pyro4 的问题,当我尝试连接到我的 python 服务器时它永远不会连接。但是据我所知,服务器运行良好。我总是遇到“未连接”的问题。当它没有连接时,我不能对我的对象进行任何 python 函数调用。

这是我列出环境中正在运行的内容时的样子

据我所知,一切看起来都不错。我是这样开始 CASA 的:

这是 CASA(名称服务器)控制台输出——(它正在运行)

注意:我也尝试将 NS_HOST 设置为 IP 地址而不是 localhost,但它对问题没有影响。

这是我手动执行这些步骤时发生的示例

是什么导致这种情况发生?有没有办法追踪这种错误?喜欢更深层次的调试来解决问题?

0 投票
2 回答
957 浏览

python - 如何防止 Pyro4 在 COMMTIMEOUT 后关闭连接

我有以下情况;我的 Pyro4 项目有一个服务器和一个客户端。服务器包含一个需要在同一个回调对象上调用 2 个回调的方法。所以类Callback有两个回调方法:Callback()SecondCallback(). 这些回调方法的调用之间存在一些延迟。在我的示例中,我通过调用模拟了这种延迟time.sleep

我需要在 Pyro4 ( Pyro4.config.COMMTIMEOUT) 上设置一个超时,因为没有一个,Pyro4 守护进程将永远不会脱离该requestLoop方法。这在仅调用一个回调方法时非常有效,但是当您必须调用第二个回调方法时,Pyro4 回调守护程序会在调用第一个回调方法 + 超时后关闭连接。

我试图将超时设置为更大的量,但这个超时也是requestLoop方法阻塞的时间,直到它处理 loopCondition。

下面包含一个演示我的问题的示例脚本。在启动 Pyro4 名称服务器后,您需要通过启动服务器来启动它:

python -m Pyro4.naming

python test.py -s

然后在新的 cmd 窗口中启动客户端:

python test.py

Test.py

此脚本的结果:

Server

Client

我的最后一个问题是:当调用第二个回调时,如何防止 Pyro4 在 COMMTIMEOUT 过期后关闭连接?

我希望所有这些信息都足够清楚,可以理解。

谢谢您的帮助。

0 投票
1 回答
1062 浏览

python - Pyro4 教程,不同机器上的错误:没有足够的数据

我是从昨天开始使用Pyro4的,所以我正在试验官方文档中的教程代码。一切都在本地完美运行,但是当我在不同的机器上调整这些示例时遇到了问题,特别是股票市场示例。所以这是我在服务器和客户端上改编的代码。
==== 服务器端 ====
stockmarket.py

聚合器.py

==== 客户端 ====
viewer.py

==== 我如何运行代码 ====
在服务器机器上,我运行以下代码来定义名称服务器

然后我运行了 stockmarket.py 和 aggregator.py,到目前为止一切都很好。之后,我启动了 viewer.py,输入了我想查看的符号,然后我发现 stockmarket.py 出现错误

我认为这只是我的代码中的一个小错误,我已经在这里停留了几个小时,任何建议或帮助将不胜感激!谢谢!!