前提
由于内部Linux服务器不能连接互联网,而又需要tensorflow训练模型,故产生此需求。
安装
1. 下载tensorflow-1.13.1-cp37-cp37m-manylinux1_x86_64.whl,此为python3.7 linux版本。
2. 执行命令:
pip install tensorflow-1.13.1-cp37-cp37m-manylinux1_x86_64.whl
3. 按照提示信息,下载tensorflow所需的依赖,下载网站:https://pypi.org/
#我离线安装时按照提示安装的依赖如下
termcolor-1.1.0.tar.gz
protobuf
tensorflow_estimator
mock
absl-py
gast
astor
tensorboard
grpcio
Markdown
setuptools
keras-applications
keras-preprocessing
各依赖的版本号与联网条件下安装tensorflow成功时各依赖的版本号相同。
4. 有时按照提示操作会遇见版本不匹配问题,最简单的做法是:若本地win或者linux虚拟机上已经安装过tensorflow1.13.1,离线下载Tensorflow依赖的版本号与其保持一致即可。
BUG1:
执行 2 命令安装成功tensorflow后,进入python环境 import tensorflow,提示错误如下:
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /root/anaconda3/lib/python3.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
strings /usr/lib64/libstdc++.so.6|grep CXXABI 查看是否有“CXXABI_1.3.8”,没有说明需要安装
进入python的安装路径下的lib文件夹(我这里python安装在/root/anaconda3)查看libstdc++.so.6的最高版本
cd /root/anaconda3/lib
ls | grep libstdc++.so.6
#结果输出
libstdc++.so.6
libstdc++.so.6.0.25
将libstdc++.so.6的最高版本复制到/usr/lib64/目录下(这里最高版本是libstdc++.so.6.0.25)
cp libstdc++.so.6.0.25 /usr/lib64/
- 进入/usr/lib64/目录下,重命名libstdc++.so.6 ,然后重新构建动态库libstdc++.so.6
mv libstdc++.so.6 libstdc++.so.6.bak #重命名,以防恢复时使用
ln -s libstdc++.so.6.0.25 libstdc++.so.6 #重新构建动态链接库
- 执行strings /usr/lib64/libstdc++.so.6|grep CXXABI 查看有 CXXABI_1.3.8,成功!
BUG2:
ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found (required by /root/anaconda3/lib/python3.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
此错误提示含义是:需要下载GLIBC_2.23源码,编译并安装,最后构建动态链接库libm.so.6即可。
tar -xzvf glibc-2.23.tar.gz
- 进入解压后的文件夹glibc-2.23,建立临时目录
mkdir build #创建子文件夹
cd build
../configure --prefix=/usr/glibc-2.23 #/usr/glibc-2.23为解压目录
- 编译并安装
make && make install
- 将编译好的libc-2.23.so 复制到/usr/lib64/下
cp /usr/glibc-2.23/lib/libm-2.23.so /usr/lib64/
- 重命名(备份)libm.so.6
mv libm.so.6 libm.so.6.bak
- 重新构建动态库libm.so.6
ln -s libm-2.23.so libm.so.6
进入python 交互环境,import tensorflow,导入成功
参考
终于在双十一这一天写出来啦,光棍节快乐~~ 《蓝天》超级好听~~~
版权声明:本文为m0_38052384原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。