wake-up-neo.com

Kein Modul heißt google.protobuf

Ich versuche, den tiefen Traum von Google zu erfüllen. Aus irgendeinem Grund bekomme ich immer wieder

ImportError: Kein Modul mit dem Namen google.protobuf

nach dem Versuch, protobuf zu importieren. Ich habe protobuf mit Sudo install protobuf installiert. Ich verwende Python 2.7 OSX Yosemite 10.10.3.

Ich denke, es könnte ein Problem mit der Bereitstellung sein, aber ich kann nichts im Web darüber finden. Derzeit in /usr/local/lib/python2.7/site-packages implementiert.

18
lecorbu

Es gibt eine andere Möglichkeit, wenn Sie einen Python 2.7.11 oder eine ähnliche Version ausführen. 

Sudo pip install protobuf

ist in Ordnung.

Wenn Sie sich jedoch in einer Anaconda-Umgebung befinden, sollten Sie dies verwenden 

conda install protobuf
23
Panfeng Li

Die Suche nach dem Verzeichnis google im Verzeichnis site-packages (natürlich für das richtige letztere Verzeichnis) und das manuelle Erstellen eines (leeren) __init__.py hat dieses Problem für mich gelöst.

(Beachten Sie, dass sich in diesem Verzeichnis das Verzeichnis protobuf befindet, aber meine Installation von Python 2.7 akzeptierte die Pakete im neuen Stil nicht. Daher war __init__.py erforderlich, auch wenn er leer war, um den Ordner als Paketordner zu identifizieren.)

... falls dies in Zukunft jedem hilft.

14
Dan Nissenbaum

In meinem Fall habe ich

  1. den Quellcode heruntergeladen, kompiliert und installiert:

    $ ./configure
    $ make
    $ make check
    $ Sudo make install`
    
  2. für Python habe ich den Ordner (Python) im Quellcode gefunden und folgende Befehle ausgeführt:

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

Nicht sicher, ob dies Ihnen helfen könnte ..

6
iSean

Ich habe dieselbe Fehlermeldung erhalten, als ich Tensor Flow verwendet habe. Die Lösung bestand einfach in uninstall Tensor Flow und protobuf:

$ Sudo pip uninstall protobuf
$ Sudo pip uninstall tensorflow

Und wieder installieren: pip Installation von Tensorflow . Derzeit ist dies:

# 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

Entsprechend Ihren Kommentaren haben Sie mehrere Versionen von Python Was dabei passieren könnte, ist, dass Sie das Paket mit einem Python von anthor installieren

pip ist eigentlich ein Link zu einem Skript, das Ihr Paket herunterlädt und installiert.

zwei mögliche lösungen:

  1. gehen Sie zu $ ​​(PYTHONPATH)/Scripts, und führen Sie pip aus diesem Ordner auf diese Weise aus, die Sie versichern
  2. erstellen Sie einen Alias ​​für das Piping, der auf $ (PYTHONPATH)/Scripts/pip verweist, und führen Sie dann pip install aus

woher wissen Sie, dass es funktioniert hat? Einfach, wenn das neue Pip verwendet wird, wird das Paket erfolgreich installiert, andernfalls ist das Paket bereits installiert

1
Oren Haliva

In meinem Fall hat MacOS die Berechtigungssteuerung . Sudo -H pip3 install protobuf

0
YellowStar5

Ich hatte dieses Problem, als ich eine google.py-Datei in meinen Projektdateien hatte.
Es ist ziemlich einfach zu reproduzieren.
main.py: import tensorflow as tf
google.py: print("Protobuf error due to google.py")

Nicht sicher, ob dies ein Fehler ist und wo er gemeldet werden muss.

0
blpasd

Ich habe den Protobuf mit diesem Befehl installiert:

conda install -c anaconda protobuf=2.6.1

(Sie sollten die Version von Protobuf überprüfen)

0
neouyghur

wenn ichpip protobuf installiere, erhalte ich die Fehlermeldung:

'Six' kann nicht deinstalliert werden. Es ist ein distutils installiertes Projekt und daher können wir nicht genau bestimmen, welche Dateien dazu gehören, was nur zu einer teilweisen Deinstallation führen würde.

Wenn Sie das gleiche Problem wie ich haben, sollten Sie die folgenden Befehle ausführen.

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

0
leon wu