python离线安装tensorflow_linux 环境离线安装tensorflow

本文详细介绍了如何在没有网络的Linux环境中离线安装TensorFlow,包括解决TensorFlow及其依赖的安装,如遇到GLIBC_2.17和CXXABI_1.3.9版本不匹配的问题,以及如何通过查找高版本库文件解决这些问题。
摘要由CSDN通过智能技术生成

文件下载

尝试安装

pip install xxxxxx.whl

会提示依赖的文件不存在。接着通过能上网的机子百度去下载对应版本号的文件继续安装。

921ab33372c71417d43958cd59976403.png

经过一系列的下载之后,tensorflow 安装需要以下依赖文件,通通装上。

99f681211de3c3a9731fbbcd8a2b5c97.png

最终能够成功安装tensorflow 。

如果运行如下命令不报错的情况下,恭喜你,安装成功。

python

>>> import tensorflow as tf

如果linux 系统原先没有安装过高版本的gcc,一般都会提示如下错误

ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found

(required by /usr/local/lib/python2.7/dist-

packages/tensorflow/python/_pywrap_tensorflow.so)

`GLIBC_2.17' 没找到。

采用如下命令查看当前系统支持的glibc版本

[root@localhost glibc]# strings /lib64/libc.so.6 | grep GLIBC

GLIBC_2.2.5

GLIBC_2.2.6

GLIBC_2.3

GLIBC_2.3.2

GLIBC_2.3.3

GLIBC_2.3.4

GLIBC_2.4

GLIBC_2.5

GLIBC_2.6

GLIBC_2.7

GLIBC_2.8

GLIBC_2.9

GLIBC_2.10

GLIBC_2.11

GLIBC_2.12

GLIBC_PRIVATE

[xxx]# tar -xf glibc-2.17.tar.gz

[xxx]# cd glibc-2.17

[xxx]# mkdir build

[xxx]# cd build

[xxx]# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

[xxx]# make -j 8

[xxx]# make install

重新查看会发现,glibc的版本已经添加上去:

[root@localhost glibc]# strings /lib64/libc.so.6 | grep GLIBC

GLIBC_2.2.5

GLIBC_2.2.6

GLIBC_2.3

GLIBC_2.3.2

GLIBC_2.3.3

GLIBC_2.3.4

GLIBC_2.4

GLIBC_2.5

GLIBC_2.6

GLIBC_2.7

GLIBC_2.8

GLIBC_2.9

GLIBC_2.10

GLIBC_2.11

GLIBC_2.12

GLIBC_2.13

GLIBC_2.14

GLIBC_2.15

GLIBC_2.16

GLIBC_2.17

GLIBC_PRIVATE

查看映射:

[root@localhost glibc]# ll /lib64/libc.so.6

lrwxrwxrwx 1 root root 12 May 7 16:31 /lib64/libc.so.6 -> libc-2.17.so

此时,libc.so.6已经映射到了libc-2.17.so。如果不是要删除映射重新建立映射。

[xxx]# rm /lib64/libc.so.6

[xxx]# ln -s /lib64/libc-2.17.so /lib64/libc.so.6

这里需要注意的是,一旦/lib64/libc.so.6文件被删除ll,ls,ln 这些命令将无法使用。报如下错误:

error while loading shared libraries: libc.so.6: cannot open shared object file:

No such file or directory

采用以下命令进行急救:

[xxx]# ldconfig

继续尝试

>>> import tensorflow as tf

会报如下错误

ImportError: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found

查看已有的版本

[xxx]# ll /usr/lib64/libstdc++.so.6

lrwxrwxrwx 1 root root 19 May 7 17:58 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13

[xxx]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

CXXABI_1.3

CXXABI_1.3.1

CXXABI_1.3.2

CXXABI_1.3.3

CXXABI_1.3.4

CXXABI_1.3.5

CXXABI_1.3.6

CXXABI_TM_1

CXXABI_FLOAT128

一般安装anaconda3 会有高版本的libstdc++.so.6存在。磁盘搜索

[xxx]# find / -name "libstdc++.so.*"

/root/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6

/root/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24

/root/anaconda3/lib/libstdc++.so.6

/root/anaconda3/lib/libstdc++.so.6.0.24

/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6

/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24

/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/lib/libstdc++.so.6

/root/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/lib/libstdc++.so.6.0.24

复制对应的版本到/usr/lib64/目录下

cp /root/anaconda3/lib/libstdc++.so.6.0.24 /usr/lib64/

同样修改软连接关系

[xxx]# rm /usr/lib64/libstdc++.so.6

[xxx]# ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

这个问题也解决了,那能够成功导入吗?不要高兴的太早,有些同学可能会遇到如下问题:

>>>import tensorflow as tf

illegal instruction (core dumped)

各种查阅资料后发现官网上的安装方式和自家的CPU不匹配,需要从source安装。泪崩...

需要简单处理的同学可以尝试降低tensorflow的版本,如安装1.5.0版本,1.5.1同样会报illegal instruction (core dumped) 亲测。

1d407ef22dfed184af2a9d6d52631c50.png

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值