导入caffe导致ImportError:“没有名为google.protobuf.internal的模块”(import enum_type_wrapper)

时间:2016-06-06 20:23:00

标签: python caffe protocol-buffers

我在我的机器上安装了Anaconda Python。当我启动Python解释器并在Python shell中输入“import caffe”时,我收到以下错误:

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”文件?

5 个答案:

答案 0 :(得分:29)

这可能是因为你的机器中有两个python环境,一个是你的linux发行版(pip)提供的,另一个是anaconda环境(/home/username/anaconda2/bin/pip)。

尝试为两种环境安装protobuf以确保

pip install protobuf

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

答案 1 :(得分:5)

如果您使用的是Ubuntu,请尝试使用

安装protobuf
sudo apt-get install protobuf

它解决了我遇到的同样问题。

答案 2 :(得分:4)

如果您使用的是Anaconda,请执行conda install protobuf

答案 3 :(得分:1)

最简单的解决方法:

pip install grpcio
pip install protobuf

答案 4 :(得分:0)

这是因为python环境混乱。

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

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

在我的计算机上,我有两个pip2(我使用python2 env安装了caffe),所以我用/usr/local/bin/pip2 install protobuf解决了这个问题。

/usr/local/bin/pip2 install protobuf