2011-01-11 100 views
1

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

+0

奇怪似乎是descriptor_pb2.py自我導入。這是正常的嗎? – 2011-01-11 20:34:44

回答

0

註釋掉descriptor_pb2.py中的descriptor_pb2.py導入本身解決了我的問題。感謝蒂姆mcclarren建議!

0

是否在谷歌/ protobuf的目錄中的文件__初始化__.py存在嗎?

+0

感謝您的回覆。是的,該文件存在於google /和google/protobuf /中。 (沉默的註釋格式不會讓我編寫雙下劃線) – 2011-01-11 18:41:31