在python中使用google的protobuf而不安装它

时间:2013-03-28 13:16:46

标签: python protocol-buffers

在我看来,当我在python中使用protobuf时,我需要先安装它,以便我也安装了setuptools。对我来说,这似乎是严重限制了可移植性,因为我必须在我想使用protobuf使用任何类型的python代码的每台机器上安装protobuf。

所以我的问题是:有没有办法以这种方式为python包装protobuf,它可以用python代码使用它进行分发?

有关此的任何信息将不胜感激。

1 个答案:

答案 0 :(得分:3)

该软件包包含一个实验性C ++扩展,并且安装文件生成Python文件,但默认情况下禁用扩展名,您应该能够在脚本中包含setup.py build结果。

请注意,Python包仍然需要安装命令行工具。该工具用于为您生成一些Python。

一旦可用,请运行:

cd python
python setup.py build

并将build/lib/google目录复制到您的脚本分发中,它必须位于sys.path上才能导入。

或者,使用setup.py bdist --formats=zip并将生成的zip文件(位于dist/protobuf-<version>.<platform>-<architecture>.zip)中的路径添加到sys.path。重命名它应该没问题。

请注意,程序包使用命名空间,因此pkg_resources模块也需要可用。它仅用于在google中声明google/__init__.py命名空间。