我们如何在Python代码中使用Python生成的protobuf代码?

我们如何在Python代码中使用Python生成的protobuf代码?,python,protocol-buffers,Python,Protocol Buffers,我已经在Python3.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

我已经在Python3.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
>>导入pb\u接口\u pb2
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
导入pb\U接口\U pb2
文件“C:\Python34\pb\u interface\u pb2.py”,第5行,在
从google.protobuf导入反射
文件“C:\Python34\lib\site packages\google\protobuf\reflection.py”,第68行,在
从google.protobuf.internal导入python_消息
文件“C:\Python34\lib\site packages\google\protobuf\internal\python\u message.py”,第848行
除struct.error外,e:
^
SyntaxError:无效语法

Protobuf并不真正支持python 3.x。对于导入的库,请尝试使用包的python 3端口pip安装protobuf-py3。您还可以从生成的文件上的
Pythonxx\Tools\Scripts
文件夹中运行
2to3.py
脚本


另一个选择是下载最新版本的源代码,并自己编译。我相信最新版本基本上与2.x和3.x兼容

您是为Python 3编译的吗?语法看起来像Python 2。哦!!!这意味着我只能使用Python2.7??Protobuffer也应该在3.x下得到支持。但是如果您为Python2.x编译,结果将只在2.x下运行。您是如何将Protobuffer文件编译成Python的?谢谢。编译是使用二进制protoc完成的。我已经在python2.7版本中进行了尝试,但仍然面临相同的问题。我使用“pip install protobuf”安装了protobuf。但当我在空闲状态下执行“import protobuf”时,它会显示没有可用模块的导入错误。要使用已编译的python protobuf代码,我相信应该导入protobuf。你能清楚地告诉我使用protobuf代码的步骤吗,因为我是新来的,我听不懂你的意思。听起来你没有使用与安装它的地方相同的安装中的空闲代码。您是否安装了多个版本的python?