问题标签 [grpc-python]

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 投票
3 回答
1762 浏览

python-3.x - 为什么在 python3.7.4 中运行 grpc demo 时会出现 AttributeError

我安装了库:googleapis-common-protos 1.6.0 grpcio 1.22.0 grpcio-tools 1.22.0

我运行一个简单的演示,然后发生异常:

grpclib/grpcapi.py:1: 导入 grpc /usr/local/lib/python3.7/site-packages/grpc/ init .py:24: 从 grpc 导入 _compression /usr/local/lib/python3.7/站点包/grpc/_compression.py:17:在 NoCompression = cygrpc.CompressionAlgorithm.none E AttributeError:模块“grpc._cython.cygrpc”没有属性“CompressionAlgorithm”

我尝试 grpcio==1.21.1 grpcio-tools==1.21.1,它不起作用。但它适用于python2.7。但是我必须在 python 3.6+ 中运行它

这是原始文件:

请帮忙,谢谢!

0 投票
0 回答
318 浏览

python - gRPC 生成的 python 脚本无法在同一目录中找到本地模块?

我的 Python 项目中有以下结构:

我一直在使用以下方法来导入本地模块,例如,

有用。但是现在 gRPC 生成的文件执行以下操作:

Python 无法导入模块并出现此错误:

ModuleNotFoundError: No module named 'grpc_generated_pb2'

因为它是生成的代码,所以我不能/不应该修改它。我的问题是:为什么 Python 不能在不做的情况下导入同一目录下的本地模块from sub1

我认为 Python 应该始终能够使用简单的import <module_name>(没有父包名称)从同一目录导入本地模块。为什么不这样做?

更新:

正如其他人所指出的,已经有类似这样的问题:如何从 Python 3 中当前目录中的文件导入?. 但是,我的问题在这个意义上是不同的:

这是否意味着 Google gRPCgrpc_tools.protoc无法为 Python 3 生成工作文件?我正在添加 gRPC 标签,希望得到 gRPC 方面的意见。谢谢。

0 投票
3 回答
4439 浏览

python-3.x - 如何检查连接到 GRPC 服务器的客户端

为了为我的 GRPC 服务器/客户端设置提供更好的调试信息,我试图找到一个 API grpc.server,以便我检查哪些客户端连接到服务器。

我发现的最有希望的问题是question,它为如何在 Java GRPC 中做到这一点提供了一个起点。但是,Python GRPC 实现中不存在 Java API。

到目前为止,我context.peer()使用grpc.ServicerContext. 如果对等点有一段时间没有发送请求(我设置为 2 秒的超时),我假设客户端已断开连接。

我已经开始查看 python-grpc 源代码,但我没有取得任何进展。

如果有人知道我可以使用的python中类似的API,那将不胜感激!即使是内部 API 也足以满足这些调试需求。

0 投票
1 回答
1551 浏览

python-3.x - 'Channel' 对象在调用 prediction_service_pb2_grpc.PredictionServiceStub(channel) 时没有属性 'unary_unary' 错误

我正在尝试为我的模型(语言分类)创建一个推理应用程序,但我收到一个错误Channelobject has no attribute unary_unary。我在任何地方都找不到关于这个问题的任何信息,因此这篇文章。我对 python 和 tensorflow 领域很陌生,我还在学习。 错误日志如下所示(最后几行)

我正在使用烧瓶创建使用模型的 Web 服务。

声明存根后,应用程序抛出异常。这里似乎有什么问题,我能做些什么来解决它?

0 投票
0 回答
341 浏览

grpc - 没有加密或身份验证的 grpc(InsecureChannel)是否在 2 个远程服务器之间工作

我有一个运行在 2 个不同服务器上的 grpc 客户端和服务器。使用此设置,当我运行客户端时,将出现以下错误。

如果客户端和服务器在同一台服务器上,它工作正常。

0 投票
4 回答
3078 浏览

protocol-buffers - protobuf 消息中的最大字段数

协议缓冲区的官方文档https://developers.google.com/protocol-buffers/docs/proto3说 protobuf 消息中字段的最大字段数是 2^29-1。但是为什么会有这个限制?请问有人可以详细解释一下吗?我是新手。

我阅读了这个问题的答案,为什么 2^29-1 是协议缓冲区中最大的键。但我没有澄清

0 投票
1 回答
1127 浏览

c++ - C++ gRPC 同步服务器中 Python gRPC 服务器 max_workers 和 maximum_concurrent_rpcs 的等效选项

这是 python 中的 gRPC 服务器:

在 Python 中,如果服务器正在处理maximum_concurrent_rpcs请求,则下一个请求将立即被拒绝。

如果max_workers小于maximum_concurrent_rpcs,则有max_workers正在处理请求的线程数,如果没有空闲线程,则下一个请求将进入队列,直到线程空闲并从队列中获取要处理的请求。队列的最大大小是 maximum_concurrent_rpcs

我的问题是同步服务器C++ gRPC 中的等效选项是什么?

1. 线程池大小如何设置,线程池没有空闲线程后,如何设置队列大小以放入多余的请求?

2. 如何设置排队请求的超时时间?

有一个SetMaxThreads选项,但似乎max_workersmaximum_concurrent_rpcs都设置为此选项。

我看到了下面的选项,但它们没有以我期望的方式工作。

0 投票
1 回答
656 浏览

python - so_reuseport下如何连接特定的grpc服务器进程

我有多个 GRPC 服务器,都使用 GRPC linux so_reuseport选项绑定到同一个端口。

这很好用,但对于健康检查,我想在所有服务器上逐一迭代并识别不健康的服务器。

因为它们都具有相同的 ip 和端口,我无法控制它将连接到谁。

任何解决方法?

0 投票
2 回答
22314 浏览

python - Python 无法连接到 grpc 通道->“无法连接到所有地址”“grpc_status”:14

尝试调用存根方法时出现以下错误。知道是什么原因造成的吗?

我尝试提供 IP 地址而不是主机名,但仍然出现相同的错误。OnseStub 类在调用 createOntology 方法之前被初始化。该服务已启动并正在运行。失败的呼叫是从龙卷风网络应用程序完成的(以防万一)

0 投票
2 回答
413 浏览

python - grpc:从 maven 将 proto 文件编译成 python 时,grpc.py 文件丢失

当我从 python 生成 grpc 文件(运行 python -m grpc_tools.protoc)时,我为每个 X proto 文件获得 2 个文件,X_pb2.py并且X_pb2_grpc.py.

但是,通过使用protobuf-maven-plugin (0.6.1) 中的compile-python maven 目标,我只得到 X_pb2.py 文件而不是grpc 文件。我遇到的问题是 pb2.py 文件中缺少服务。那么如何才能构建 grpc.py 文件呢?

来自点子列表