Dlaczego widzę błąd „nie można importować nazwy descriptor_pb2” podczas używania buforów protokołu Google?

Podczas korzystania z wygenerowanego kodu Pythona z naszych klas protobuf otrzymujemy ten błąd:

cannot import name descriptor_pb2

Odpowiedni wygenerowany kod C ++ działa dobrze, więc wydaje się, że nie ma problemu z naszymi aktualnymi definicjami proto.

Ten błąd występuje, gdy próbuję zaimportować naszą klasę, tak jak poniżej:

import sys
sys.path.append('..\path\to\generated')
sys.path.append('..\contrib\protobuf\python')

from foobar_pb2 import FooBar

Czy poprawne jest dołączanie ścieżek systemowych?

Sprawdziłemprotobuf\python\google\protobuf katalog dladescriptor_pb2.py ale tylko znalezionodescriptor.py - używamy najnowszej wersji, więc zakładam, że nie brakuje żadnych plików.

Czy ktoś wie, jakie jest rozwiązanie?

questionAnswers(5)

yourAnswerToTheQuestion