关于python:没有名为google.protobuf的模块

No module named google.protobuf

我正在尝试执行Google的梦想。 由于某些奇怪的原因,我不断

ImportError: No module named google.protobuf

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

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


还有一种可能,如果您正在运行python 2.7.11或其他类似版本,

1
sudo pip install protobuf

还可以

但是,如果您在anaconda环境中,则应使用

1
conda install protobuf


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

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

...以防将来对任何人有帮助。


就我而言

  • 下载源代码,编译并安装:

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

    1
    2
    $ python setup.py build
    $ python setup.py install'
  • 不知道这是否可以帮助您。


    当我尝试使用Tensor Flow时出现了相同的错误消息。解决方案只是卸载Tensor Flow和protobuf:

    1
    2
    $ sudo pip uninstall protobuf
    $ sudo pip uninstall tensorflow

    并重新安装:Tensorflow的pip安装。当前是:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 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

    当我命令pip install protobuf时,出现错误:

    Cannot uninstall 'six'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

    如果您遇到与我相同的问题,则应执行以下命令。


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


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

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

    两种可能的解决方案:

  • 转到$(PYTHONPATH)/ Scripts并从该文件夹运行pip,这样可以确保
    您使用正确的点
  • 创建别名以指向指向$(PYTHONPATH)/ Scripts / pip的pip,然后运行pip install
  • 您怎么知道它有效?
    如果使用新的点,则很简单,将成功安装该软件包,否则该软件包已安装


    我在项目文件中有google.py文件时遇到了这个问题。
    复制非常容易。
    main.py:import tensorflow as tf
    google.py:print("Protobuf error due to google.py")

    不知道这是否是一个错误以及在哪里报告。


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


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

    1
    conda install -c anaconda protobuf=2.6.1

    (您应检查protobuf的版本)