我想在当前目录和所有子目录中递归编译protobuf文件。我正在运行以下脚本:
D:\Code\cloudapi>for /R %i in (*) do python -m grpc_tools.protoc --python_out=. --proto_path=. %i
但我收到的只有以下错误:
d:\Code\cloud dapi\third_party\googleapis\google\type\dayofweek.proto:文件不存在于使用proto_path(或-I)指定的任何路径中。您必须指定包含此文件的proto_path。请注意,proto_path必须是. proto文件名的确切前缀——协议太笨了,无法弄清楚哪两条路径(例如绝对路径和相对路径)是等价的(这比您的墨水难)。
这个问题有没有可能的解决方案?
是的,您可以使用“windows选项”命令指向文件夹。
像这样的方法应该会奏效:
for /R %i in (*) do python -m grpc_tools.protoc --python_out= %~di%~pi --proto_path= %~di%~pi %i
我猜您希望输出与源文件夹位于同一文件夹中。
我在这里所做的是使用WindowsFOR
命令的可选扩展语法。如果您转到/?,您可以看到更多选项。
基本上,%~ di
被转换为文件的完整路径的驱动器号%~ pi是指向该文件夹的路径(不带驱动器)。
所以我在
--proto_path
参数上指定了它,这应该会让它振作起来。我对--python_out
使用了相同的方法,但您可能希望将其恢复为.
以使其进入父文件夹。
我正在测试导入。另一个目录中的proto文件。 $GOPATH/src/A/A.proto $GOPATH/src/B/B.proto 我正在这样做:在文件夹A中: 然后在文件夹B中: 但我会得到以下错误: B. proto:文件不驻留在使用--proto_path(或-我)指定的任何路径中。您必须指定一个--proto_path包含此文件。请注意,proto_path必须是. proto文件名的
问题内容: 我正在测试从另一个目录导入.proto文件。 $ GOPATH / src / A / A.proto $ GOPATH / src / B / B.proto 我正在这样做:在文件夹A中: 然后在文件夹B中: 但是我会得到这个错误: B.proto:文件不位于使用–proto_path(或-I)指定的任何路径内。您必须指定包含此文件的– proto_path。请注意,proto_pa
问题内容: 我已经为“ Debian Linux”创建了一个Java应用程序。现在,我希望该应用程序读取放置在指定该应用程序的jar文件的目录中的文件。那么在File Object的参数中要指定什么呢? 在上述声明中,作为参数指定相对文件路径的参数是什么,该相对文件路径表示放置应用程序的jar文件的路径? 问题答案: 如果您知道文件的名称,那么当然 如果您不知道名称,则可以使用File对象的lis
我是新的登录,我试图添加文件路径动态,与属性文件,为windows和Linux。 下面是我的代码sinppet,我如何获得${MY_HOME}的值
在将Spring Boot版本1.5.7.RELEASE导出到可运行的JAR后,出现了以下错误。出于安全原因,我不使用maven,并且我在构建路径中添加了所有JAR。 我服从命令 然后我收到了屏幕截图中显示的错误