2014-01-17 11 views
6

Ich habe versucht, Protokollpuffer in meinem Python-Programm zu verwenden, kann es aber nicht zum Laufen bringen. Ich habe einen Windows 8-Rechner und habe Python 2.7.6 und Python 3.3 ausprobiert. heruntergeladen ich den Binärprotokolls Puffer Compiler für Python und verwenden es myProto_pb2.py aus meiner myProto.proto-Datei zu erzeugen, aber wenn ich die folgenden Fehlermeldung erhalten, wenn ich mein Python-Programm ausführen:Wie kann ich Protokollpuffer für Python unter Windows verwenden?

aus dem „Import myProto_pb2“ -Linie, erhalte ich die folgende Fehler bei der Verwendung von Python 2.7.6 von Protokollpuffern Version 2.5:

from google.protobuf import descriptor as _descriptor 
    ImportError: No module named google.protobuf 

Wie kann ich richtig installieren und auszuführen Protokollpuffer von Python unter Windows?

Antwort

8

Wie kann ich Protokollpuffer von Python unter Windows korrekt installieren und ausführen?

Wie jedes andere Paket müssen Sie es tatsächlich installieren, wenn Sie möchten, dass es installiert wird. Wenn Sie versuchen, mit dem Paket zu starten, das in Ihrem Quellverzeichnis sitzt, funktioniert es möglicherweise , aber die meisten Pakete funktionieren nicht auf diese Weise; Sie neigen dazu, Dinge wie die Top-Level-Paket import inging und dann ein paar Zeilen nach unten, wenn es versucht, import etwas anderes ... genau wie Sie sehen.

Ich glaube, ein installierbares Paket kommt im Haupt-Download-Paket von GoogleCode. Zumindest für die Quellpakete, wenn nicht für das win32-Paket. Im Verzeichnis python finden Sie eine vollständige Anleitung zur Installation. Grundsätzlich gilt:

C:\path\to\protobuf-2.5.0> cd python 
C:\path\to\protobuf-2.5.0\python> python setup.py build 
C:\path\to\protobuf-2.5.0\python> python setup.py test 
C:\path\to\protobuf-2.5.0\python> python setup.py install 

Aber wenn das nicht mit dem win32 vorgefertigten Paket kommt, oder Sie haben es nicht mehr herumliegen, oder lieber nur PyPI installiert aus, es ist auch there. Also unter der Annahme you've got pip installed:

pip install protobuf 
+0

Vielen Dank! Es scheint zu funktionieren ... Aus irgendeinem Grund kann ich mein Python-Programm von einer Eingabeaufforderung wie Cygwin ausführen, aber ich bekomme immer noch die Importfehler, wenn ich es aus dem Standard-Idle-Editor starte. – user2399973

+0

@ user2399973: Ich vermute, dass Sie tatsächlich zwei Python-Installationen installiert haben - vielleicht ein Cygwin-Python und ein natives Win32-Python. Sie haben protobuf korrekt in cygwin Python installiert, also funktioniert es, wenn Sie cygwin Python in der Befehlszeile ausführen, aber Sie haben es nicht in das native Python installiert, es funktioniert also nicht, wenn Sie das native Python-IDLE ausführen . Aber wirklich, das ist nur eine Vermutung. Posten Sie eine _new question_, beschreiben Sie Ihr Setup, zeigen Sie die eigentliche Fehlermeldung (mit Traceback, falls vorhanden) an, anstatt sie nur zu beschreiben, etc. – abarnert

Verwandte Themen