I installed Anaconda Python on my machine. When I start the Python Interpreter and type "import caffe" in the Python shell, I get the following error:
ImportError: No module named google.protobuf.internal
I have the following files:
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
What files do I need so the import will work? Is there an "internal.h" file that is required?
This is probably because you have two python environments in your machine, the one provided by your linux distribution(pip
) and the other by the anaconda environment (/home/username/anaconda2/bin/pip
).
Try installing protobuf for both environments to be sure
pip install protobuf
/home/username/anaconda2/bin/pip install protobuf
If you are using Ubuntu, try installing protobuf using
sudo apt-get install protobuf
It solved the same problem that I faced.
If you are using Anaconda, do conda install protobuf
This is because the python envirnment confusion.
# check where pip2
$ where pip2
/usr/local/bin/pip2
/usr/bin/pip2
# check where pip
$ which pip
/usr/local/bin/pip
On my computer, I have two pip2(I install caffe using python2 env), so I used /usr/local/bin/pip2 install protobuf
solved this problem.
/usr/local/bin/pip2 install protobuf
Easiest way to fix it:
pip install grpcio
pip install protobuf
When have multiple python version use: as suggested by aimuch.
/usr/local/bin/pip2 install protobuf
/usr/local/bin/pip2 install grpcio