web-dev-qa-db-fra.com

Aucun module nommé google.protobuf

J'essaie de lancer le rêve profond de Google. Pour une raison quelconque, je continue de recevoir

ImportError: Aucun module nommé google.protobuf

après avoir essayé d'importer protobuf. J'ai installé protobuf en utilisant Sudo install protobuf. J'utilise Python 2.7 OSX Yosemite 10.10.3.

Je pense que cela peut être un problème d’emplacement de déploiement, mais je ne trouve rien sur le Web à ce sujet. En cours de déploiement sur /usr/local/lib/python2.7/site-packages.

18
lecorbu

Il existe une autre possibilité, si vous utilisez une version 2.7.11 de Python ou d’autres versions similaires, 

Sudo pip install protobuf

est ok.

Mais si vous êtes dans un environnement anaconda, vous devriez utiliser 

conda install protobuf
23
Panfeng Li

La localisation du répertoire google dans le répertoire site-packages (pour le dernier répertoire approprié, bien sûr) et la création manuelle d'un __init__.py (vide) ont résolu le problème pour moi.

(Notez que ce répertoire contient le répertoire protobuf mais que mon installation de Python 2.7 n'acceptait pas les packages de style nouveau, donc __init__.py était requis, même s'il était vide, pour identifier le dossier en tant que dossier de package.)

... Au cas où cela aiderait quelqu'un à l'avenir.

14
Dan Nissenbaum

Dans mon cas je

  1. téléchargé le code source, compilé et installé:

    $ ./configure
    $ make
    $ make check
    $ Sudo make install`
    
  2. pour python, j'ai localisé son dossier (python) sous le code source et exécuté les commandes suivantes:

    $ python setup.py build
    $ python setup.py install'
    

Je ne sais pas si cela pourrait vous aider.

6
iSean

J'ai reçu le même message d'erreur lorsque j'ai essayé d'utiliser Tensor Flow. La solution consistait simplement à uninstall Tensor Flow and protobuf:

$ Sudo pip uninstall protobuf
$ Sudo pip uninstall tensorflow

Et réinstallez-le à nouveau: installation pip de Tensorflow . Actuellement, c'est:

# Ubuntu/Linux 64-bit, CPU only:
$ Sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl

# Ubuntu/Linux 64-bit, GPU enabled:
$ Sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0rc0-cp27-none-linux_x86_64.whl

# Mac OS X, CPU only:
$ Sudo easy_install --upgrade six
$ Sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0rc0-py2-none-any.whl
6
Martin Thoma

Selon vos commentaires, vous avez plusieurs versions de python Ce qui pourrait arriver, c’est que vous installiez le paquet avec le pip de Anthor Python

pip est en fait un lien vers un script qui télécharge et installe votre paquet.

deux solutions possibles:

  1. allez dans $ (PYTHONPATH)/Scripts et lancez pip à partir de ce dossier de cette façon que vous assurezvous utilisez le bon
  2. créez un alias pour piper qui pointe vers $ (PYTHONPATH)/Scripts/pip, puis lancez pip install

comment saurez-vous que cela a fonctionné? Simple si le nouveau pip est utilisé, le paquet sera installé avec succès, sinon le paquet est déjà installé

1
Oren Haliva

Dans mon cas, MacOS a le contrôle de permission . Sudo -H pip3 install protobuf

0
YellowStar5

J'ai eu ce problème quand j'ai eu un fichier google.py dans mes fichiers de projet.
Il est assez facile à reproduire.
main.py: import tensorflow as tf
google.py: print("Protobuf error due to google.py")

Je ne sais pas s'il s'agit d'un bogue et où le signaler.

0
blpasd

J'ai installé le protobuf avec cette commande:

conda install -c anaconda protobuf=2.6.1

(vous devriez vérifier la version de protobuf)

0
neouyghur

quand je commande pip install protobuf , le message d'erreur suivant s'affiche:

Impossible de désinstaller 'six'. C'est un projet installé par distutils et nous ne pouvons donc pas déterminer avec précision les fichiers qui en font partie, ce qui ne conduirait qu'à une désinstallation partielle.

Si vous avez le même problème que moi, vous devez exécuter les commandes suivantes.

pip install --ignore-installed six Sudo pip install protobuf

0
leon wu