我已经在Python 3.4中安装了protobuf,并将编译后的代码pb_x_pb2.py
推送到python34文件夹中。当我输入 import pb_x_pb2.py
时,它显示以下错误。
>>> import pb_interface_pb2
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
import pb_interface_pb2
File "C:\Python34\pb_interface_pb2.py", line 5, in <module>
from google.protobuf import reflection
File "C:\Python34\lib\site-packages\google\protobuf\reflection.py", line 68, in <module>
from google.protobuf.internal import python_message
File "C:\Python34\lib\site-packages\google\protobuf\internal\python_message.py", line 848
except struct.error, e:
^
SyntaxError: invalid syntax
最佳答案
Protobuf 并不真正支持 python 3.x。对于导入的库,请尝试 pip install protobuf-py3,这是该包的 python 3 端口。您还可以从生成的文件的 Pythonxx\Tools\Scripts
文件夹中运行 2to3.py
脚本。
另一种选择是下载最新版本的源代码,然后自己编译它们。我相信最新版本大部分都兼容2.x和3.x
关于python - 我们如何在Python代码中使用Python生成的protobuf代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389754/