2015-07-09 17 views
9

Sto provando a eseguire il sogno profondo di Google. Per qualche strana ragione continuo a ricevereNessun modulo denominato google.protobuf

ImportError: No module named google.protobuf

dopo aver provato ad importare protobuf. Ho installato protobuf usando sudo install protobuf. Sto eseguendo Python 2.7 OSX Yosemite 10.10.3.

Penso che potrebbe essere un problema di installazione, ma non trovo nulla sul web in merito. Attualmente distribuito su /usr/local/lib/python2.7/site-packages.

+1

Hai installato pip google.protobuf? –

+0

Ho fatto "pip install protobuf" ma ottengo ancora ImportError: nessun modulo chiamato google.protobuf dopo aver usato "da google.protobuf import text_format" in python 2.7.6 – lecorbu

+0

C'è una possibilità che tu abbia due pitoni sul tuo computer? Se usi il pip direttamente dalla cartella scripts –

risposta

1

Secondo i vostri commenti, lei deve versioni si moltiplicano di python quello che potrebbe happend è che si installa il pacchetto con pip di anthor pitone

pip è in realtà un link ad uno script che donwload e installare il pacchetto.

due soluzioni possibili:

  1. vanno a $ (PYTHONPATH)/Scripts ed eseguire pip da quella cartella in questo modo si assicura si utilizza il seme corretto
  2. creare alias per pip che punta a $ (PYTHONPATH)/Scripts/pip e quindi eseguire pip install

come sapete che ha funzionato? semplice se il nuovo PIP viene utilizzato il pacchetto sarà installato con successo, altrimenti il ​​pacchetto è già installato

6

Nel mio caso ho

  1. scaricato il codice sorgente, compilato ed installato:

    $ ./configure 
    $ make 
    $ make check 
    $ sudo make install` 
    
  2. per Python che trova la sua cartella (Python) con il codice sorgente e comandi corse:

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

Non so se questo potrebbe aiutare ..

+0

Utile grazie :) – Siddhartha

+0

Vorrei aggiungere che per alcuni sistemi il passaggio 1 è probabilmente già fatto per te. Hai solo bisogno di fare il passaggio 2. Nel mio caso ho dovuto scaricare l'intero file zip di protobuf e cercare la sottocartella python. –

6

ho ottenuto lo stesso messaggio di errore quando ho cercato di utilizzare Tensor Flow. La soluzione era semplicemente quello di disinstallazione Tensor flusso e protobuf:

$ sudo pip uninstall protobuf 
$ sudo pip uninstall tensorflow 

e reinstallarlo di nuovo: pip installation of Tensorflow. Attualmente, questo è:

# 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 
12

C'è un'altra possibilità, se si esegue un pitone 2.7.11 o di altri programmi simili,

sudo pip install protobuf 

è ok.

Ma se ci si trova in un ambiente di anaconda, è necessario utilizzare

conda install protobuf 
0

Ho installato il protobuf con questo comando:

conda install -c anaconda protobuf=2.6.1 

(si dovrebbe verificare la versione di protobuf)

3

Individuazione della directory google nella directory site-packages (ovviamente per la seconda directory appropriata) e creazione manuale di uno (vuoto) __init__.py ha risolto questo problema per me.

(Si noti che all'interno di questa directory è la directory protobuf ma la mia installazione di Python 2.7 non ha accettato i pacchetti nuovo stile in modo che il __init__.py è stato richiesto, anche se vuote, per identificare la cartella come cartella del pacchetto.)

... Nel caso questo aiuti qualcuno in futuro.

0

Nel mio caso, MacOS ha il controllo dei permessi. sudo -H pip3 install protobuf

0

Ho riscontrato questo problema quando avevo un file google.py nei miei file di progetto.
È abbastanza facile da riprodurre.
main.py: import tensorflow as tf
google.py: print("Protobuf error due to google.py")

Non so se questo è un bug e dove segnalarlo.

Problemi correlati