python --proto_path传递了空目录名

tyky79it  于 2023-04-28  发布在  Python
关注(0)|答案(3)|浏览(212)

我尝试使用以下命令编译proto文件:

protoc -I=. --python_out=. ./message.proto --proto_path=.

但我得到了这个错误:

--proto_path passed empty directory name.  (Use "." for current directory.)

怎么办?

a64a0gku

a64a0gku1#

您应该删除-I=.中的=,并删除--proto_path=.标志

owfi6suc

owfi6suc2#

指挥部为我工作。

注意-I == --proto_path,因此使用具有相同值的两者是多余的

protoc的一个“问题”是protobuf文件必须用proto_path封装。
因此,在您的示例中,当前目录必须包含一个有效的message.proto文件,因为./message.proto是一个有效的引用,并且因为--proto_path包含当前目录。

qltillow

qltillow3#

在我的例子中,混合短和长标志-I=--python_out=是问题所在。

$ protoc -I=. --python_out=. ./message.proto
--proto_path passed empty directory name.  (Use "." for current directory.)

解决方案:

$ protoc --proto_path=. --python_out=. ./message.proto

在您的情况下,删除-I=.将解决问题。

$ protoc --python_out=. ./message.proto --proto_path=.

相关问题