我是grpc的新手,我已经编写了这个原始文件。
syntax = "proto3";
message ImageFile {
bytes value = 1;
}
service Edgedetect {
rpc DetectEdge(ImageFile) returns (ImageFile) {}
}
我设法使用命令在同一目录中编译了pb2和pb2_grpc文件
python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. test.proto
响应反序列化器行中的test_pb2_grpc.py文件出现问题
self.DetectEdge = channel.unary_unary(
'/Edgedetect/DetectEdge',
request_serializer=test__pb2.ImageFile.SerializeToString,
response_deserializer=test__pb2.ImageFile.FromString,
)
,在另一行中,在ImageFile上调用FromString方法
def add_EdgedetectServicer_to_server(servicer, server):
rpc_method_handlers = {
'DetectEdge': grpc.unary_unary_rpc_method_handler(
servicer.DetectEdge,
request_deserializer=test__pb2.ImageFile.FromString,
response_serializer=test__pb2.ImageFile.SerializeToString,
),
}
说
Class 'ImageFile' has no 'FromString' member
有人知道如何解决这个问题吗?
答案 0 :(得分:0)
您是否尝试过执行代码?我个人已经在代码编辑器中看到了此问题,这是由于编辑器无法解析或包含生成的文件。如果您不喜欢编辑器中卡住的错误提示,则重新启动它可以解决此问题。
如果问题仍然存在,请发布更多有关所使用的gRPC版本以及如何重现它的详细信息。