问题
I am using nanopb library
I seek your suggestion to resolve build issue - I am using protobuf 3.12,nanopb 0.4.2, puython3,gcc . I compiled protoc both c and python but still faced issue while building.
make
protoc -osimple.pb simple.proto - step done
nanopb/examples/simple $ python ../../generator/nanopb_generator.py simple.pb -> following error
$ python3 ../../generator/nanopb_generator.py simple.pb Traceback (most recent call last): File "../../generator/nanopb_generator.py", line 50, in from .proto import nanopb_pb2 SystemError: Parent module '' not loaded, cannot perform relative import
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "../../generator/nanopb_generator.py", line 71, in import proto.nanopb_pb2 as nanopb_pb2 File "/home/vagrant/nanopb-0.4.2-linux-x86/generator/proto/nanopb_pb2.py", line 10, in from google.protobuf import symbol_database as _symbol_database ImportError: cannot import name 'symbol_database'
Please tell me what I am missing. Am I supposed to use Python2 only ?
Also what features of protobuf are not recommended to use in nanopb ? Does nanopb supports both proto2 and proto3 syntax ?
回答1:
generator/proto/nanopb_pb2.py", line 10, in from google.protobuf import symbol_database as _symbol_database ImportError: cannot import name 'symbol_database'
It seems there may be a version conflict between protoc
version and your python-protobuf
version. Try to remove nanopb_pb2.py
, it should get autogenerated again possibly with better luck.
Considering you are using the binary package, you can also call generator_bin/nanopb_generator
, which should have all the dependencies already included.
来源:https://stackoverflow.com/questions/63557025/compilation-issue-in-protobuf-with-nanopb