python - 在 Python 中使用 protoc 生成正确的导入
问题描述
我proto3
在我的python
项目中使用。一切正常,但是当我从proto
文件导入生成类时不正确。
我有这样的目录结构。
project/endpoints/protos -> image.proto
我想要输出文件。
project/endpoints/grpc -> 从 proto 文件生成的类
我正在使用此命令从proto
文件生成类。
python -m grpc.tools.protoc \
--include_imports \
--include_source_info \
--proto_path=project/endpoints/protos \
--python_out=project/endpoints/grpc \
--grpc_python_out=project/endpoints/grpc \
image.proto
我也尝试过,python3 ....
但结果相同。
它生成文件,project/endpoints/grpc
但问题是导入不正确。当我看到导入时,它看起来像。
import image_pb2 as image__pb2
但它应该是这样的。
import project.endpoints.grpc.image_pb2 as image__pb2
你能告诉我如何生成这样的导入吗?
解决方案
经过大量研究
我 在这里找到了
薄荷解决方案:
sudo apt-get install 2to3
运行以调整导入:
2to3 path/of/generated -w -n
所以
import image_pb2
将更改为
from . import image_pb2
推荐阅读
- java - 与 Android 应用 Google-Fit 同步权限
- java - 当我使用 .setStyle 时,通知未显示在 android Oreo 中
- r - 如何在不指定列名的情况下将行添加到特定位置(索引)的小标题?(右)
- ios - 在 CloudKit 中取消设置值
- ethereum - 节点不接受以太坊替换交易
- android - android studio 从 4.0.0 升级到 4.1.1 后如何修复“Gradle 的依赖缓存可能已损坏”错误?
- node.js - 如何在 NodeJS 中为 Socket.io websocket 发送 sec-websocket-accept 密钥
- ansible - 调用之间缺少 ansible_env 变量
- python - pytube 模块的 register_on_progress_callback() 方法导致问题
- python - When can None be used inside a function?