我正在写一个小型的python实用程序,它将被中度非技术用户使用,并且需要与一些protobufs进行交互。python protobufs - 避免安装步骤?
理想情况下,我想唯一的先决条件使用本一本地机器上是:
有蟒蛇安装
* 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脚本,以便在本地heirarchy中生成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
还,我是蟒蛇的n00b,因此有可能我俯瞰东西明显。
TIA, 猎户座
奇怪似乎是descriptor_pb2.py自我导入。这是正常的吗? – 2011-01-11 20:34:44