我看到应该支持创建Python包装器来读取生成的C++协议缓冲区。
从http://yz.mit.edu/wp/fast-native-c-protocol-buffers-from-python/中,我发现一种简单的方法是通过设置环境变量来开启支持:
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp 如果我这样做,我会得到以下错误:
看起来这与以下内容相关: https://groups.google.com/forum/#!topic/protobuf/5Ywz8gwn9Kk 当使用python安装protocol buffers时,不会生成google.protobuf.compiler.plugin_pb2 python文件,而protobuf/python/setup.py明确定义了生成google.protobuf.descriptor_pb2。如何进行显式安装,或者以其他方式使python中的protobuf性能可接受?
从http://yz.mit.edu/wp/fast-native-c-protocol-buffers-from-python/中,我发现一种简单的方法是通过设置环境变量来开启支持:
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp 如果我这样做,我会得到以下错误:
import pyFileLib.db_proc_geo_pb2
File "C:\sandbox\PrortoBuf\lib\pyFileLib\db_proc_geo_pb2.py", line 6, in <module>
from google.protobuf import descriptor as _descriptor
File "c:\python\winpython-64bit-3.6.3.0qt5\python-3.6.3.amd64\lib\site-packages\google\protobuf\descriptor.py", line 46, in <module>
from google.protobuf.pyext import _message
ImportError: cannot import name '_message'
我看到一种扩展protoc生成器的方法,可以本地生成快速Python输出: https://github.com/Cue/fast-python-pb
git clone https://github.com/Cue/fast-python-pb.git
cd fast-python-pb
python setup.py install
在尝试使用--fastpython_out运行protoc时,我遇到了以下错误:
ModuleNotFoundError: No module named 'plugin_pb2'
--fastpython_out: protoc-gen-fastpython: Plugin failed with status code 1.
看起来这与以下内容相关: https://groups.google.com/forum/#!topic/protobuf/5Ywz8gwn9Kk 当使用python安装protocol buffers时,不会生成google.protobuf.compiler.plugin_pb2 python文件,而protobuf/python/setup.py明确定义了生成google.protobuf.descriptor_pb2。如何进行显式安装,或者以其他方式使python中的protobuf性能可接受?