[英]Why do I get an error when importing my auto-generated gRPC code in Python?
我必須為一些 Python 應用程序編寫一個 RPC 服務。 我有一個名為solver.proto
的 IDL 文件,並使用grpcio-tools
模塊solver.proto
生成了一些代碼。 這是最終的項目結構:
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 中導出protos 的目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.