我正在寫一個小型的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