2011-12-29 42 views
18

我们在我们的项目中使用Python 3.x。但Protocol Buffers的官方客户端仅支持python 2.x.有什么办法可以用python 3.x访问Protocol Buffers?

我不想降级到python 2.x.

+0

OSS的全部意义:它移植到3.x自己,如果项目业主不会。把它叉起来。 – alphazero 2011-12-29 02:45:14

+0

协议缓冲区支持版本2.6.0中的Python 3。 http://protobuf.googlecode.com/svn/trunk/CHANGES.txt – imxylz 2014-10-11 03:38:31

回答

4

UPDATE:protobuf的稳定版本2.6.1不支持Python 3.x.但是,较新的3.0.0版本(仍在测试版)支持Python 3.x.您可以在此处看到PyPi上发布的版本: https://pypi.python.org/pypi/protobuf

不,没有。有关于Python 3.X支持的discussion on the protobuf google group。这表明Google希望继续支持Python 2.4,因此移植到Python 3.X并不容易。如果项目分支或可以放弃对Python 2.4和2.5的支持,则移植起来会更容易。

+2

旧的答案,请谷歌现在有端口python3现在 – piotr 2013-11-14 08:41:57

+1

如何提出编辑,给我一个链接,或自己回答这个问题?评论和只是告诉我谷歌是不是很有帮助。 – jterrace 2013-11-14 16:44:10

+7

我认为@piotr的意思是:“旧答案[。] [P]租约[,] [G] oogle [(公司)],现在有python3的端口[所以它应该有官方支持]” – underrun 2013-12-17 20:52:01

3

python 3.x兼容植入。 https://github.com/openx/python3-protobuf

+2

不幸的是,这个叉已经过时 – 2013-05-28 12:48:36

+1

关于Python3 protobuf在谷歌群体上的讨论:https://groups.google.com/forum/#!topic/protobuf/Qalty-PenDA – levesque 2013-11-22 20:55:10

6

这里是目前最新版本的protobuf的(2.5.0 + arm64补丁)较新的叉支持Python 3中,仍然与Python 2.4向后兼容:https://github.com/GreatFruitOmsk/protobuf-py3

+0

如何使用protoc从这个包?我能够使protobuf工作,但不得不手动修改生成的文件。我怎样才能让协议工作正确? – omikron 2015-03-31 15:45:53

+0

你应该可以像平常一样去做。你能否在github上详细描述一个问题? – Kentzo 2015-04-01 08:23:47

+0

我想通了。我虽然遗留的protoc会与这个软件包兼容,但我必须重新编译整个protobuf-py3并在系统目录中进行安装以取代protoc。在此之后它工作正确。 – omikron 2015-04-01 09:04:00

4

谷歌协议的最新版本缓冲区(2.6)增加了Python 3支持。我建议使用它。

编辑:没关系。他们在发行说明中撒谎。

相关问题