gpt4 book ai didi

python - 为什么在 Python 中导入自动生成的 gRPC 代码时会出错?

转载 作者:行者123 更新时间:2023-12-03 13:40:58 32 4
gpt4 key购买 nike

我必须为一些 Python 应用程序编写一个 RPC 服务。我有一个名为 solver.proto 的 IDL 文件并使用 grpcio-tools 从中生成了一些代码模块。这是生成的项目结构:

solver-service
├── main.py
└── protos/
├── __init__.py
├── __pycache__
│ └── ...
├── generate_pb.py
├── solver.proto
├── solver_pb2.py
└── solver_pb2_grpc.py

我将 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'

所以无论出于何种原因,我都可以导入 protos.solver_pb2成功但解释器提示导入 protos.solver_pb2_grpc由于一些相对路径问题。召集所有从事 gRPC 工作的 Python 开发人员——我如何让它工作?

最佳答案

我知道这是旧的,但通常你必须添加 from .导入前 _grpc.py文件。 solver_pb2_grpc 导入solver_pb2,但由于某种原因,PYTHONPATH 不会检查在 python 中导出原型(prototype)的目录。

关于python - 为什么在 Python 中导入自动生成的 gRPC 代码时会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46004677/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com