python protobufs - 避免安装步骤?

时间:2011-01-11 02:06:21

标签: python import protocol-buffers descriptor

我正在编写一个小型python实用程序,它将由中等非技术用户使用,并且需要与某些protobufs接口。

理想情况下,我希望在本地计算机上使用它的唯一先决条件是:

安装了python

* have an SVN checkout of the repository
* run a simple bash script to build the local proto .py definitions
* run "python myutility"

我在导入descriptor_pb2.py时遇到了麻烦。 我见过Why do I see "cannot import name descriptor_pb2" error when using Google Protocol Buffers?, 但是我希望避免添加运行proto SDK安装程序的其他先决条件。 我已经修改了bash脚本以在本地层次结构中生成descriptor_pb2.py, 这适用于从我的其他_pb2.py文件导入的第一级,但看起来像descriptor_pb2.py本身尝试导入descriptor_pb2找不到它:

    $ python myutility.py
Traceback (most recent call last):
  File "myutility.py", line 4, in <module>
    import protos.myProto_pb2
  File "/myPath/protos/myProto_pb2.py", line 8, in <module>
    from google.protobuf import descriptor_pb2
  File "/myPath/google/protobuf/descriptor_pb2.py", line 8, in <module>
    from google.protobuf import descriptor_pb2
ImportError: cannot import name descriptor_pb2

我的本​​地文件夹如下:

* myutility.py
* google/
  * protobuf/
    * descriptor.py
    * descriptor_pb2.py
* protos
  * myProto_ob2.py

另外,我是一个python n00b,所以我可能会忽略一些明显的东西。

TIA, 猎户

2 个答案:

答案 0 :(得分:0)

文件__ init __.py是否存在于google / protobuf目录中?

答案 1 :(得分:0)

注释掉descriptor_pb2.py本身中descriptor_pb2.py的导入修复了我的问题。感谢tim mcclarren提出建议!