我想用于protoc.main(...)
在运行时生成 python gRPC 文件,如下所示。
from grpc_tools import protoc
args = "--proto_path=. --python_out=grpc --grpc_python_out=grpc alpha.proto"
result = protoc.main(c)
上面的代码给出了带有结果代码的“缺少输出指令”错误1
。
但是,下面的解决方法可以alpha.proto
作为命令行 args 工作。这意味着alpha.proto
文件很好。
import subprocess
result = subprocess.call("python -m grpc_tools.protoc " + args, shell=True)
可能的原因是 (1)protoc.main
确实像下面的代码那样对每个字符进行编码,或者 (2) 在内部protoc.main
错误地解析了参数路径。
def main(command_arguments):
"""Run the protocol buffer compiler with the given command-line arguments.
Args:
command_arguments: a list of strings representing command line arguments to
`protoc`.
"""
command_arguments = [argument.encode() for argument in command_arguments]
return _protoc_compiler.run_main(command_arguments)
如何protoc.main
正确使用?