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
die Seltsamkeit scheint zu sein, dass descriptor_pb2.py sich importiert. ist das normal ? –