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.
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
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.
In meinem Fall habe ich
den Quellcode heruntergeladen, kompiliert und installiert:
$ ./configure
$ make
$ make check
$ Sudo make install`
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 ..
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
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:
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
In meinem Fall hat MacOS die Berechtigungssteuerung . Sudo -H pip3 install protobuf
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.
Ich habe den Protobuf mit diesem Befehl installiert:
conda install -c anaconda protobuf=2.6.1
(Sie sollten die Version von Protobuf überprüfen)
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