fix --nanopb_out: protoc-gen-nanopb: Plugin failed with status code 1.

2024-03-23 19:36

本文主要是介绍fix --nanopb_out: protoc-gen-nanopb: Plugin failed with status code 1.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

错误打印

Traceback (most recent call last):File "/home/mi/local/sdk-for-device/proto_buf/0.3.9.6/generator/nanopb_generator.py", line 37, in <module>from .proto import nanopb_pb2, plugin_pb2
ImportError: attempted relative import with no known parent packageDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "/home/mi/local/sdk-for-device/proto_buf/0.3.9.6/generator/nanopb_generator.py", line 57, in <module>import proto.nanopb_pb2 as nanopb_pb2File "/home/mi/local/sdk-for-device/proto_buf/0.3.9.6/generator/proto/nanopb_pb2.py", line 34, in <module>_descriptor.EnumValueDescriptor(File "/home/mi/.local/lib/python3.8/site-packages/google/protobuf/descriptor.py", line 789, in __new___message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:1. Downgrade the protobuf package to 3.20.x or lower.2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
--nanopb_out: protoc-gen-nanopb: Plugin failed with status code 1.
make: *** [Makefile.proto:21: protomk] Error 1这个问题怎么解决

这个错误是由于你的 protobuf 版本过高,而你的生成的代码需要一个较低版本的 protobuf。这个问题有两种可能的解决方案:

  1. 降级你的 protobuf 包:你可以尝试将你的 protobuf 包降级到 3.20.x 或更低的版本。你可以使用以下命令来降级 protobuf:
pip install protobuf==3.20.0
  1. 设置环境变量:你可以尝试设置环境变量 PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATIONpython。这将使用纯 Python 解析,但可能会比较慢。你可以使用以下命令来设置环境变量:
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

如果以上方法都不能解决你的问题,你可能需要使用 protoc 版本 >= 3.19.0 来重新生成你的代码。

这篇关于fix --nanopb_out: protoc-gen-nanopb: Plugin failed with status code 1.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839327

相关文章

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a

android java.io.IOException: open failed: ENOENT (No such file or directory)-api23+权限受权

问题描述 在安卓上,清单明明已经受权了读写文件权限,但偏偏就是创建不了目录和文件 调用mkdirs()总是返回false. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_E

UserWarning: mkl-service package failed to import

安装完成anaconda,并设置了两个环境变量  之后再控制台运行python环境,输入import numpy as np,提示错误 D:\InstallFolder\Anaconda3\lib\site-packages\numpy\__init__.py:143: UserWarning: mkl-service package failed to import, therefore

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

Python安装llama库出错“metadata-generation-failed”

Python安装llama库出错“metadata-generation-failed” 1. 安装llama库时出错2. 定位问题1. 去官网下载llama包 2.修改配置文件2.1 解压文件2.2 修改配置文件 3. 本地安装文件 1. 安装llama库时出错 2. 定位问题 根据查到的资料,发现时llama包中的execfile函数已经被下线了,需要我们手动修改代码后

VS Code 调试go程序的相关配置说明

用 VS code 调试Go程序需要在.vscode/launch.json文件中增加如下配置:  // launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information,

MATLAB的fix(),floor()和ceil()函数的区别与联系

fix(x),floor(x)和ceil(x)函数都是对x取整,只不过取整方向不同而已。 这里的方向是以x轴作为横坐标来看的,向右就是朝着正轴方向,向左就是朝着负轴方向。 fix(x):向0取整(也可以理解为向中间取整) floor(x):向左取整 ceil(x):向右取整 举例: 4个数:a=3.3、b=3.7、c=-3.3、d=-3.7 fix(a)=3 fl

code: 400, msg: Required request body is missing 错误解决

引起这个错误的原因是,请求参数按照get方式给。 应该给json字符串才对 补充: 1. @RequestBody String resource 加@RequestBody必须给json字符串,否则会报错400,记如标题错误。 不加这个的进行请求的话,其实post和get就没有什么区别了。 2. List<String> indexCodes=(List<String>)json.

iOS项目发布提交出现invalid code signing entitlements错误。

1、进入开发者账号,选择App IDs,找到自己项目对应的AppId,点击进去编辑, 2、看下错误提示出现  --Specifically, value "CVYZ6723728.*" for key "com.apple.developer.ubiquity-container-identifiers" in XX is not supported.-- 这样的错误提示 将ubiquity