31

我正在努力实现谷歌的深沉梦想。出于某种奇怪的原因,我不断得到

ImportError:没有名为 google.protobuf 的模块

在尝试导入 protobuf 之后。我已经使用 .protobuf 安装了 protobuf sudo install protobuf。我正在运行 python 2.7 OSX Yosemite 10.10.3。

我认为这可能是部署位置问题,但我在网上找不到任何关于它的信息。当前部署到 /usr/local/lib/python2.7/site-packages。

4

9 回答 9

33

还有另一种可能,如果你运行的是 python 2.7.11 或者其他类似的版本,

sudo pip install protobuf

没关系。

但是如果你在 anaconda 环境中,你应该使用

conda install protobuf
于 2016-05-16T08:27:37.090 回答
20

google在目录中找到site-packages目录(当然,对于正确的后一个目录)并手动创建一个(空的)__init__.py为我解决了这个问题。

(请注意,此目录中是该protobuf目录,但我安装的 Python 2.7 不接受新样式的包,因此__init__.py即使是空的,也需要将该文件夹标识为包文件夹。)

...如果这对将来的任何人有帮助。

于 2017-07-17T09:51:11.857 回答
10

就我而言,我

  1. 下载源代码,编译安装:

    $ ./configure
    $ make
    $ make check
    $ sudo make install`
    
  2. 对于python,我在源代码下找到了它的文件夹(python),并运行了命令:

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

不知道这是否可以帮助你..

于 2016-01-20T03:07:05.127 回答
7

当我尝试使用 Tensor Flow 时,我收到了同样的错误消息。解决方案是简单地卸载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
于 2016-04-14T13:57:28.507 回答
3

当我命令pip install protobuf时,我收到错误:

无法卸载“六”。这是一个 distutils 安装的项目,因此我们无法准确确定哪些文件属于它,这只会导致部分卸载。

如果你和我有同样的问题,你应该执行以下命令。

pip install --ignore-installed six sudo pip install protobuf

于 2018-09-12T04:24:16.473 回答
2

根据您的评论,您有多个版本的 python 可能发生的是您使用 anthor python 的 pip 安装包

pip 实际上是链接到下载和安装包的脚本。

两种可能的解决方案:

  1. 转到 $(PYTHONPATH)/Scripts 并从该文件夹运行 pip 以确保使用正确的 pip
  2. 创建指向 $(PYTHONPATH)/Scripts/pip 的 pip 别名,然后运行 ​​pip install

你怎么知道它有效?简单,如果使用新的 pip 则包将安装成功,否则包已安装

于 2015-07-09T18:26:20.647 回答
0

当我的项目文件中有一个 google.py 文件时,我遇到了这个问题。
很容易复制。
主.py:import tensorflow as tf
谷歌.py:print("Protobuf error due to google.py")

不确定这是否是错误以及在哪里报告。

于 2017-09-29T14:21:47.903 回答
0

我使用以下命令安装了 protobuf:

conda install -c anaconda protobuf=2.6.1

(你应该检查 protobuf 的版本)

于 2016-07-20T07:17:31.410 回答
0

就我而言,MacOS 具有权限控制。 sudo -H pip3 install protobuf

于 2017-07-29T02:45:42.133 回答