为什么在python3.7.4中运行grpc演示时会出现AttributeError



我安装了lib:GoogleAPIS-common-Protos 1.6.0GRPCIO 1.22.0grpcio-tools 1.22.0

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

grpclib/grpcapi.py:1: in 进口 GRPC/usr/local/lib/python3.7/site-packages/grpc/init.py:24: in 从 GRPC 导入_compression/usr/local/lib/python3.7/site-packages/grpc/_compression.py:17: in NoCompression = cygrpc。压缩算法.无E 属性错误:模块 'grpc._cython.cygrpc' 没有属性 'CompressionAlgorithm'

我尝试 grpcio==1.21.1

grpcio-tools==1.21.1,它不起作用。但它适用于 Python 2.7。但是我必须在Python 3.6 +中运行它

这是原型文件:

syntax = "proto3";
option java_multiple_files = true;
option java_package = "io.grpc.examples.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";
package demo;
service mrpc_service {
  rpc call (mrpc_request) returns (mrpc_reply) {}
}
message mrpc_request {
  string action = 1;
  string body = 2;
}
message mrpc_reply {
  string result = 1;
  string body = 2;
}

请帮忙,谢谢!

grpcio软件包的 C 扩展似乎未正确安装。您可以发布pip日志以进行安装吗?另外,我想知道您使用的是什么操作系统?

此 bug 可能需要更多上下文才能进行调试。是否可以考虑向 gRPC 存储库提交问题?https://github.com/grpc/grpc

终于,我找到了罪魁祸首;我使用 pytest,并添加 pytest.ini例如:

[pytest]
filterwarnings =
    error
    ignore::UserWarning

删除,然后它就可以工作了。

似乎在pytest 5.3或更多 https://github.com/pytest-dev/pytest/issues/6314 中得到了修复

最新更新