Ubuntu 16.04系统导入tensorflow-gpu 1.5出现语法错误及导入失败问题
问题原因
- 核心冲突为protobuf版本不兼容:TensorFlow 1.5 适配的protobuf最高版本为3.6.x,当前环境安装了超出适配范围的高版本protobuf。高版本protobuf使用了仅Python3支持的
metaclass关键字声明语法,Python2.7无法识别,直接触发SyntaxError,连带导致后续pywrap_tensorflow导入失败。 - 存在环境混淆风险:你描述的安装方式为virtualenv环境下pip安装,但实际运行使用的是anaconda创建的tf虚拟环境,两个环境相互独立,可能存在TensorFlow实际未正确安装到tf虚拟环境的问题。
解决方案
步骤1:卸载当前环境中高版本protobuf
先激活tf虚拟环境,执行卸载命令:
conda activate tf pip uninstall -y protobuf
步骤2:安装适配版本的protobuf
TensorFlow1.5 + Python2.7的组合,推荐安装3.4.0版本protobuf,兼容性最优:
pip install protobuf==3.4.0
步骤3:验证导入
启动Python执行测试:
import tensorflow as tf print(tf.__version__)
如果仍报ImportError: cannot import name pywrap_tensorflow,按以下操作修复:
- 确认CUDA9.0、CUDNN7.0路径已正确写入环境变量,在
~/.bashrc文件末尾添加如下配置后执行source ~/.bashrc生效:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
- 重新在tf虚拟环境中安装对应版本TensorFlow:
pip uninstall -y tensorflow-gpu pip install tensorflow-gpu==1.5
内容的提问来源于stack exchange,提问作者Xander
相关产品推荐
相关产品推荐

