2011-01-11 8 views
1

Ich schreibe ein kleines Python-Dienstprogramm, das von moderat nicht-technischen Benutzern konsumiert wird und die mit einigen Protobufs interagieren muss.Python Protobufs - vermeiden Sie den Installationsschritt?

ideal, würde ich die einzigen Voraussetzungen wie dies auf einem lokalen Rechner zu verwenden zu sein:

haben Python

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

i in Schwierigkeiten renne um descriptor_pb2.py importieren, tho. Ich habe Why do I see "cannot import name descriptor_pb2" error when using Google Protocol Buffers?, gesehen, möchte aber vermeiden, die zusätzliche Voraussetzung für die Ausführung des Proto-SDK-Installers hinzuzufügen. Ich habe das Bash-Skript so geändert, dass auch descriptor_pb2.py in der lokalen Hierarchie generiert wird, das für die erste Importstufe aus meinen anderen _pb2.py-Dateien funktioniert, aber es sieht so aus, als würde descriptor_pb2.py selbst versuchen descriptor_pb2 can ' t findet es:

$ 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 

mein lokaler Ordner wie folgt aussieht:

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

auch, ich einen python-n00b bin, so ist es möglich, ich bin mit Blick auf etwas offensichtlich.

tia, orion

+0

die Seltsamkeit scheint zu sein, dass descriptor_pb2.py sich importiert. ist das normal ? –

Antwort

0

Kommentar der Import von descriptor_pb2.py in descriptor_pb2.py selbst behoben mein Problem. Danke an Tim McClarren dafür, dass du das vorgeschlagen hast!

0

Ist die init __.py existieren Datei __ in google/protobuf Verzeichnis?

+0

danke für die Antwort. Ja, diese Datei existiert sowohl in google/als auch in google/protobuf /. (Die Formatierung von Kommentarkommentaren lässt mich die doppelten Unterstriche nicht schreiben) –

Verwandte Themen