web-dev-qa-db-fra.com

L'importation de caffe résulte dans ImportError: "Aucun module nommé google.protobuf.internal" (import enum_type_wrapper)

J'ai installé Anaconda Python sur ma machine. Lorsque je démarre l'interpréteur Python et que je tape "import caffe" dans le Python Shell, j'obtiens l'erreur suivante:

ImportError: No module named google.protobuf.internal

J'ai les fichiers suivants:

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

De quels fichiers ai-je besoin pour que l'importation fonctionne? Existe-t-il un fichier "internal.h" requis?

13
PyNerd

C'est probablement parce que vous avez deux environnements python dans votre machine, celui fourni par votre distribution linux (pip) et l'autre par l'environnement anaconda (/home/username/anaconda2/bin/pip).

Essayez d'installer protobuf pour les deux environnements pour être sûr

pip install protobuf

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

30
Jayant Agrawal

Si vous utilisez Ubuntu, essayez d'installer protobuf en utilisant

Sudo apt-get install protobuf

Cela a résolu le même problème que j'ai rencontré.

5
Michael Jaison G

Si vous utilisez Anaconda, faites conda install protobuf

5
chinmay singh

Le moyen le plus simple de le réparer:

pip install grpcio
pip install protobuf
1
Ammad

C'est parce que la confusion d'environnement python.

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

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

Sur mon ordinateur, j'ai deux pip2 (j'installe caffe en utilisant python2 env), j'ai donc utilisé /usr/local/bin/pip2 install protobuf a résolu ce problème.

/usr/local/bin/pip2 install protobuf
0
aimuch