Подтвердить что ты не робот

Импорт результатов caffe в ImportError: "Нет модуля с именем google.protobuf.internal" (import enum_type_wrapper)

Я установил Anaconda Python на свою машину. Когда я запускаю Python Interpreter и нажимаю "import caffe" в оболочке Python, я получаю следующую ошибку:

ImportError: No module named google.protobuf.internal

У меня есть следующие файлы:

wire_format_lite_inl.h
wire_format_lite.h
wire_format.h
unknown_field_set.h
text_format.h
service.h
repeated_field.h
reflection_ops.h
message_lite.h
message.h
generated_message_util.h
extension_set.h
descriptor.proto
descriptor.h
generated_message_reflection.h
generated_enum_reflection.h
dynamic_message.h
descriptor.pb.h
descriptor_database.h

Какие файлы мне нужны, чтобы импорт работал? Есть ли файл "internal.h", который требуется?

4b9b3361

Ответ 1

Вероятно, это связано с тем, что на вашем компьютере есть две среды python, одна из которых предоставляется вашим дистрибутивом linux (pip), а другая - средой anaconda (/home/username/anaconda2/bin/pip).

Попробуйте установить protobuf для обеих сред, чтобы быть уверенным

pip install protobuf

/home/username/anaconda2/bin/pip install protobuf

Ответ 2

Если вы используете Ubuntu, попробуйте установить protobuf, используя

sudo apt-get install protobuf

Он решил ту же проблему, с которой я столкнулся.

Ответ 3

Если вы используете Anaconda, сделайте conda install protobuf

Ответ 4

Самый простой способ это исправить:

pip install grpcio
pip install protobuf

Ответ 5

Это происходит из-за путаницы в среде питона.

# check where pip2
$ where pip2
/usr/local/bin/pip2
/usr/bin/pip2

# check where pip
$ which pip
/usr/local/bin/pip

На моем компьютере есть два pip2 (я устанавливаю caffe с помощью python2 env), поэтому я использовал /usr/local/bin/pip2 install protobuf, чтобы решить эту проблему.

/usr/local/bin/pip2 install protobuf