2017-02-24 48 views
1

我正在使用Protobuf插件来生成一些定制的C#代码,并给定一组Protobuf文件。它在Linux上运行良好,我也想在Windows上运行它,以便直接从我的Visual Studio项目生成此代码。如何在Windows上运行protobuf python插件

这里是我的(失败)使用当前的命令行:

path\to\protoc.exe --plugin=protoc-gen-my-plugin=path\to\my-plugin.py --my-plugin_out=output\path\gen my_proto.proto 

这里是我得到的错误:

- 我 - plugin_out:protoc-gen-我的插件:%1没有应用程序Win32 valide。

我安装了Python 2.7.11,它在我的路径中。我也尝试使用x86和x64可执行文件运行protoc.exe。

有什么限制我不知道或者我错过了什么?

回答

2

我能通过将python插件封装在.bat文件中解决我的问题。下面是我使用的代码:

@echo off 
chdir path\to\my-plugin 
python -u my-plugin.py 

运行python脚本时使用“-U”选项是非常重要的,因为否则的标准输入将被缓冲。由于protoc通过stdin将所有输入传递给插件(.proto文件进行解析),这非常重要。输出由插件写入stdout,所以没有问题。

这里是最后的命令与我的插件来执行protoc:

path\to\protoc.exe --plugin=protoc-gen-my-plugin=redirect.bat --my-plugin_out=output\path\gen my_proto.proto 
相关问题