nmu*_*thy 5 python protocol-buffers grpc
我必须为某些Python应用程序编写RPC服务。我有一个IDL文件solver.proto,并使用该grpcio-tools模块从中生成了一些代码。这是结果项目结构:
solver-service
??? main.py
??? protos/
??? __init__.py
??? __pycache__
? ??? ...
??? generate_pb.py
??? solver.proto
??? solver_pb2.py
??? solver_pb2_grpc.py
Run Code Online (Sandbox Code Playgroud)
我将PYTHONPATH设置为/abs/path/to/solver-service,我尝试从该目录导入自动生成的gRPC类,但是单击以下命令:
solver-service$ python3
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import protos.solver_pb2
>>> import protos.solver_pb2_grpc
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/abs/path/to/solver-service/protos/solver_pb2_grpc.py", line 4, in <module>
import solver_pb2 as solver__pb2
ImportError: No module named 'solver_pb2'
Run Code Online (Sandbox Code Playgroud)
因此,无论出于何种原因,我都可以protos.solver_pb2成功导入,但是protos.solver_pb2_grpc由于某些相对路径问题,解释器抱怨导入。召集所有进行gRPC的Python开发人员进行工作-如何使它工作?
小智 0
我知道这很旧,但通常您必须from .在导入文件之前添加_grpc.py。solver_pb2_grpc 导入solver_pb2,但由于某种原因,PYTHONPATH 不检查 python 中导出原型的目录。
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |