Ошибка при импорте скомпилированного protobuf в структуру gRPC с Python

Я написал службу с gRPC. Когда я запускаю службу, она не может импортировать скомпилированный protobuf и показывает следующее сообщение об ошибке:

from google.protobuf import descriptor as _descriptortitus| ModuleNotFoundError: No module named 'google'

person Pouya Esmaeili    schedule 31.10.2020    source источник


Ответы (1)


попытался воспроизвести вашу проблему.

А там в моей комплектации все нормально.

Похоже, что в pip есть несколько google пакетов.
И один с именем google на самом деле это не официальный пакет Google.
Вы использовали pip install google для установки пакета Google?

Я сделал это, как показано ниже

pip install protobuf
pip freeze
protobuf==3.13.0
six==1.15.0
from google.protobuf import descriptor
dir(descriptor)
['Descriptor', 'DescriptorBase', 'DescriptorMetaclass', 'EnumDescriptor', 'EnumValueDescriptor', 'Error', 'FieldDescriptor', 'FileDescriptor', 'MakeDescriptor', 'MethodDescriptor', 'OneofDescriptor', 'ServiceDescriptor', 'TypeTransformationError', '_Deprecated', '_Lock', '_NestedDescriptorBase', '_OptionsOrNone', '_ParseOptions', '_ToCamelCase', '_ToJsonName', '_USE_C_DESCRIPTORS', '__author__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_internal_create_key', '_lock', '_message', 'api_implementation', 'binascii', 'os', 'six', 'threading', 'warnings']

Моя версия Python

Python 3.6.7 (default, Dec  5 2018, 15:02:05) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
person rzlvmp    schedule 31.10.2020