在import tensorflow的时候,出现
ImportError: No module named google.protobuf
尝试解决的历程(勿直接模仿):
step1:从github上下载,并用C++ 方法sudo make安装了protobuf,error变为找不到descriptor_pb2.py
step2:之前安装过tensorflow,并且能正常运行。推测可能是此后的一些操作导致tensorflow和protobuf的版本不合。
首先卸载protobuf(按照刚刚安装的命令反过来)
sudo make uninstall protobuf
再重新安装tensorflow。我不敢乱卸载,所以打算安装和之前相同版本的tensorflow。
pip install tensorflow-gpu==1.2.0
终端显示已经下载了该版本的tensorflow,就继续下载其他缺少的包,其中就包含protobuf。最后安装完成,再次import tensorflow成功。
Requirement already satisfied: tensorflow-gpu==1.2.0 in /usr/local/lib/python2.7/dist-packages
Collecting werkzeug>=0.11.10 (from tensorflow-gpu==1.2.0)
Downloading https://files.pythonhosted.org/packages/20/c4/12e3e56473e52375aa29c4764e70d1b8f3efa6682bef8d0aae04fe335243/Werkzeug-0.14.1-py2.py3-none-any.whl (322kB)
100% |████████████████████████████████| 327kB 4.9MB/s
Collecting html5lib==0.9999999 (from tensorflow-gpu==1.2.0)
Downloading https://files.pythonhosted.org/packages/ae/ae/bcb60402c60932b32dfaf19bb53870b29eda2cd17551ba5639219fb5ebf9/html5lib-0.9999999.tar.gz (889kB)
100% |████████████████████████████████| 890kB 310kB/s
Requirement already satisfied: backports.weakref==1.0rc1 in /usr/local/lib/python2.7/dist-packages (from tensorflow-gpu==1.2.0)
Collecting protobuf>=3.2.0 (from tensorflow-gpu==1.2.0)
Downloading https://files.pythonhosted.org/packages/27/e7/bf96130ebe633b08a3913da4bb25e50dac5779f1f68e51c99485423f7443/protobuf-3.6.0-cp27-cp27mu-manylinux1_x86_64.whl (7.1MB)
100% |████████████████████████████████| 7.1MB 87kB/s
Requirement already satisfied: six>=1.10.0 in ./.local/lib/python2.7/site-packages (from tensorflow-gpu==1.2.0)
Requirement already satisfied: wheel in /usr/lib/python2.7/dist-packages (from tensorflow-gpu==1.2.0)
Requirement already satisfied: mock>=2.0.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow-gpu==1.2.0)
Requirement already satisfied: markdown==2.2.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow-gpu==1.2.0)
Requirement already satisfied: numpy>=1.11.0 in ./.local/lib/python2.7/site-packages (from tensorflow-gpu==1.2.0)
Requirement already satisfied: bleach==1.5.0 in /usr/local/lib/python2.7/dist-packages (from tensorflow-gpu==1.2.0)
Requirement already satisfied: setuptools in /usr/lib/python2.7/dist-packages (from protobuf>=3.2.0->tensorflow-gpu==1.2.0)
Requirement already satisfied: pbr>=0.11 in /usr/local/lib/python2.7/dist-packages (from mock>=2.0.0->tensorflow-gpu==1.2.0)
Requirement already satisfied: funcsigs>=1; python_version < "3.3" in /usr/local/lib/python2.7/dist-packages (from mock>=2.0.0->tensorflow-gpu==1.2.0)
Building wheels for collected packages: html5lib
Running setup.py bdist_wheel for html5lib ... done
Stored in directory: /home/yyd/.cache/pip/wheels/50/ae/f9/d2b189788efcf61d1ee0e36045476735c838898eef1cad6e29
Successfully built html5lib
Installing collected packages: werkzeug, html5lib, protobuf
Successfully installed html5lib-0.9999999 protobuf-3.6.0 werkzeug-0.14.1