it-swarm.com.ru

Нет модуля с именем google.protobuf

Я пытаюсь осуществить глубокую мечту Google. По какой-то странной причине я продолжаю получать

Ошибка импорта: нет модуля с именем google.protobuf

после попытки импортировать protobuf. Я установил protobuf, используя Sudo install protobuf. Я использую Python 2.7 OSX Yosemite 10.10.3.

Я думаю, что это может быть проблема расположения развертывания, но я не могу найти что-либо в Интернете об этом. В настоящее время развертывается в /usr/local/lib/python2.7/site-packages.

18
lecorbu

Есть и другая возможность, если вы используете Python 2.7.11 или другие подобные версии, 

Sudo pip install protobuf

в порядке.

Но если вы находитесь в среде анаконды, вы должны использовать 

conda install protobuf
23
Panfeng Li

Расположение каталога google в каталоге site-packages (для правильного последнего каталога, конечно) и ручное создание (пустого) __init__.py решило эту проблему для меня.

(Обратите внимание, что в этом каталоге находится каталог protobuf, но моя установка Python 2.7 не принимала пакеты нового стиля, поэтому требовался __init__.py, даже если он пуст, для идентификации папки как папки пакета.)

... На случай, если это кому-нибудь поможет в будущем.

14
Dan Nissenbaum

В моем случае я

  1. скачал исходный код, скомпилировал и установил:

    $ ./configure
    $ make
    $ make check
    $ Sudo make install`
    
  2. для python я нашел его папку (python) под исходным кодом и выполнил команды:

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

Не уверен, что это может помочь вам ..

6
iSean

Я получил то же сообщение об ошибке при попытке использовать Tensor Flow. Решением было просто uninstall Tensor Flow и protobuf:

$ Sudo pip uninstall protobuf
$ Sudo pip uninstall tensorflow

И переустановите его снова: pip установка Tensorflow . В настоящее время это:

# 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

Согласно вашим комментариям, у вас есть несколько версий python Что может случиться, так это то, что вы устанавливаете пакет с pip anthor python

pip - это ссылка на скрипт, который загружает и устанавливает ваш пакет.

два возможных решения:

  1. перейдите в $ (PYTHONPATH)/Scripts и запустите pip из этой папки так, как вы это застрахуете Вы используете правильный pip
  2. создайте псевдоним для pip, который указывает на $ (PYTHONPATH)/Scripts/pip, а затем запустите pip install

как вы узнаете, что это сработало? Просто, если используется новый pip, пакет будет успешно установлен, иначе пакет уже установлен

1
Oren Haliva

В моем случае MacOS имеет контроль доступа . Sudo -H pip3 install protobuf

0
YellowStar5

У меня была эта проблема, когда у меня был файл google.py в моих файлах проекта.
Это довольно легко воспроизвести.
main.py: import tensorflow as tf
google.py: print("Protobuf error due to google.py")

Не уверен, если это ошибка и где сообщить об этом.

0
blpasd

Я установил protobuf с помощью этой команды:

conda install -c anaconda protobuf=2.6.1

(вы должны проверить версию protobuf)

0
neouyghur

когда я командую pip install protobuf , я получаю ошибку:

Невозможно удалить «шесть». Это установленный дистрибутивный проект, и поэтому мы не можем точно определить, какие файлы принадлежат ему, что приведет только к частичному удалению.

Если у вас такая же проблема, как у меня, вы должны выполнить следующие команды.

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

0
leon wu