当前位置: 首页 > 知识库问答 >
问题:

如何在Windows上运行protobuf python插件

李成礼
2023-03-14

我目前正在使用Protobuf插件生成一些定制的C#代码,给出一组Protobuf文件。它在Linux上运行良好,我也希望在Windows上运行它,以便直接从我的Visual Studio项目生成此代码。

以下是我当前(未成功)使用的命令行:

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

这是我得到的错误:

--my-plugin\u out:protoc gen my plugin:%1 n'est pas unie application Win32 valide。

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

是否有任何限制我没有意识到或我错过了什么?

共有1个答案

戎高爽
2023-03-14

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

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

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

下面是使用我的插件执行protoc的最后一个命令:

path\to\protoc.exe --plugin=protoc-gen-my-plugin=redirect.bat --my-plugin_out=output\path\gen my_proto.proto
 类似资料:
  • 问题内容: 运行Airflow的常规说明不适用于Windows环境: Airflow实用程序在命令行中不可用,我在其他地方找不到要手动添加的实用程序。Airflow如何在Windows上运行? 问题答案: 您可以在Windows中激活,并直接按照本教程进行操作。我能够按照上面的步骤启动并成功运行。 安装完成后,请进行编辑以将所有配置指向Windows系统中的某个位置,而不是lxss(ubuntu)

  • 问题内容: 如何在Windows中运行celery worker而不创建Windows Service?有什么比喻吗? 问题答案: 它的完成方式与Linux中相同。将目录更改为包含celery任务的模块并调用效果很好。

  • 我正在关注部署到VPS的#335,在接近本集结尾时,我们需要运行,以便让服务器访问github repo。 问题是如何在windows中运行它?需要安装什么? 我知道要运行访问远程服务器,我可以使用。但是这个命令需要在本地运行,我知道如何使用来实现这一点。

  • 运行气流的一般说明不适用于Windows环境: 气流实用程序在命令行中不可用,我在其他地方找不到它可以手动添加。气流如何在Windows上运行?

  • 在linux中,您可以使用命令

  • 问题内容: 我正在尝试从命令行运行.class文件。当我手动移动到存储目录时,它会起作用,但是当我尝试这样的操作时: 它说找不到主班。除了制作.jar文件(我知道.jar是最好的解决方案,但现在不是我正在寻找的解决方案)之外,还有其他解决方案吗? 问题答案: 在Java应用程序启动(又名或干脆)预计最多支持四个不同的方式来指定要启动(取决于Java版本使用)的东西。 指定 类名 是最基本的方法。注