离线环境下redhat7.2已及centOS(7.0版本以上)安装python3.6以及tensorflow1.5、opencv3.4.5流程和采坑总结
序
本博客为主要是为了解决如何在离线环境下部署基于centOS7.0以上的系统。解决应用服务器调用tensorflow和opencv的生产环境。下面基于所需要的安装环境,安装步骤,如何配置,缺失的系统文件如何调用。此环境和系统已经通过调用和完成。
Tensorflow的安装环境
- centos>7(glibc版本>=2.17,gcc>=4.8.5。否则不保证低版本的系统在编译安装tensorflow时会遇到问题。报错,无法编译。)
- python>3.6依赖python3的环境(建议使用3,因为2版本只支持到2020年)
- Tensorflow1.5(不建议使用高版本及以上版本,有可能编译出错)
- Anaconda3(可选择安装,下面教程未使用anaconda进行安装,但注意下载html5lib-0.9999999.tar.gz包替换anaconda3库中的内容,同时不建议下载ananconda5.31以上版本的库,会导致python编译不了)
- Java 1.8(支持tomcat)
- Tomcat 8.5(建议8.5.35稳定版本)
安装环境监测
首先查看linux系统内核,本次安装的linux版本为redhat7.2。
输入ldd --version查看glibc版本,输入cat /proc/version查看gcc
安装需求glibc版本大于2.17.gcc=4.8.3亲测可装。
上图红框处标明本机使用的环境。
离线安装两种方式
现在分为两种安装过程。且两种环境都安装成功。第一种找一个redhat环境,配置可以连接外网,安装一个python3.6版本。并使用/python3.6/bin/pip3的命令执行安装。所需要的库和依赖。第二种是需要root权限,安装编译python,并将tensorflow的安装包导入本机,然后进行安装。
第一种取巧的方式详细说明
我们现在已经将已经编译好的python3.6包含tensorflow 和opencv的版本打包好。
上传到服务器后直接解压缩。tar -xvf python36-1211.tar.gz。解压后。cd打开python36/bin/ 输入./python3启动python3
如图所示这样就可以直接调用已经通过编译保存的tensorflow。
进入python编译模式。输入以下代码。
import tensorflow as tf
sess = tf.Session()
a = tf.constant(10)
b = tf.constant(22)
print(sess.run(a + b))
假如导入tf.Session()的时候,出现如上图所示的警告,就说明cpu不支持加速运算,对tensorflow基本运行不打扰,只是有可能运行速率变慢。
结果出现32表示我们的TensorFlow安装成功。
接着导入import cv2.
系统提示的信息是libSM.so.6的包并不支持。。出现错误的原因是linux系统底层不支持这个。所以在这里,我们提供libICE.so.6.3.0和libSM.so.6.0.1。在csdn下载目录中
需要使用root用户的权限将提供的包拷贝到/usr/lib64/目录下。
在该目录下以root用户权限使用
ln -s libICE.so.6.3.0 libICE.so.6
ln -s libICE.so.6.3.0 libICE.so
ln -s libSM.so.6.0.1 libSM.so
ln -s libSM.so.6.0.1 libSM.so.6
将copy的包软连接到上述应用上。接着回去/python36/bin目录用./python3打开python测试。
这样cv2就导入成功。
接着。如果后期机器学习需要加包,我们就可以直接在本机已经启动的python3中的pip3目录直接下载。下载方式跟普通pip3下载一样。
下载后,再将python3.6打包部署到离线环境。这样就有效的避免了tensorflow需要依赖包的环境。
第二种详细的安装方式详细说明
1.首先安装解压jdk1.8到当前目录下
tar -zxvf jdk-8u131-linux-x64.tar.gz
mkdir /usr/java
mv /usr/java/jdk1.8.0_131 /usr/java
(假如系统未自带压缩包,从安装所需文件中安装bzip2-1.0.6.tar.gz)
2.解压tomcat到目录下。
在linux下Tomcat配置连接jdk路径
{TOMCAT_HOME}/bin/catalina.sh或setenv.sh文件:
export JAVA_HOME=/usr/java/jdk1.7.0_55
或用的全一点如下设置(用上面只设置一个JAVA_HOME足够了):
export JAVA_HOME=/usr/local/java/jdk1.8.0_162
export JRE_HOME=/usr/local/java/jdk1.8.0_162/jre
export PATH=$PATH:/usr/local/java/jdk1.8.0_162/bin
export CLASSPATH=/usr/local/java/jdk1.8.0_162/lib:/usr/local/java/jdk1.8.0_162/jre/lib
将war放入tomcat/webapp中
3、安装Python的tensorflow环境(全在tensorflow中)
1.Python-3.6.6.tgz
2.tensorflow-1.7.0rc0-cp36-cp36m-linux_x86_64.whl(版本可以更改)
3.protobuf-3.5.2-cp36-cp36m-manylinux1_x86_64.whl
4.six-1.11.0-py2.py3-none-any.whl
5.gast-0.2.0.tar.gz
6.grpcio-1.10.0-cp36-cp36m-manylinux1_x86_64.whl
7.absl-py-0.1.11.tar.gz
8.numpy-1.14.2-cp36-cp36m-manylinux1_x86_64.whl
9.tensorboard-1.6.0-py3-none-any.whl
10.html5lib-0.9999999.tar.gz
11.Werkzeug-0.14.1-py2.py3-none-any.whl
12.bleach-1.5.0-py2.py3-none-any.whl
13.termcolor-1.1.0.tar.gz
14.astor-0.6.2-py2.py3-none-any.whl
15.wheel-0.30.0-py2.py3-none-any.whl
1、以whl结尾的文件可以使用如下命令安装
pip install xxxxx.whl(安装文件名)
2、以.tar.gz结尾的文件要先解压在进入解压文件夹,使用python setup.py install安装 示例如下
tar zxvf gast-0.2.0.tar.gz
cd gast-0.20
python setup.py install
3、由于TensorFlow的安装要依赖很多其他安装包,所以安装关系是承继
关系,所以要先安装最底层依赖的安装包,然后层层递增,最后安装TensorFlow
安装顺序如下
首先我们安装所有的tar.gz 文件
html5lib-0.9999999.tar.gz
gast-0.2.0.tar.gz
absl-py-0.1.11.tar.gz
termcolor-1.1.0.tar.gz
记住tar.gz文件的安装方法3部,
1解压,2进入文件夹,3 执行python setup.py install 命令
接下来我们来安装whl 文件 whl有依赖关系所以要按照先后顺序安装。安装方法 pip install xxxx.whl(文件名)
1)six-1.11.0-py2.py3-none-any.whl
2)protobuf-3.5.2-cp36-cp36m-manylinux1_x86_64.whl
3)grpcio-1.10.0-cp36-cp36m-manylinux1_x86_64.whl
4)numpy-1.14.2-cp36-cp36m-manylinux1_x86_64.whl
5)Werkzeug-0.14.1-py2.py3-none-any.whl
6)Markdown-2.6.11-py2.py3-none-any.whl
7)wheel-0.30.0-py2.py3-none-any.whl
8)bleach-1.5.0-py2.py3-none-any.whl
9)tensorboard-1.6.0-py3-none-any.whl
10)astor-0.6.2-py2.py3-none-any.whl
3、安装TensorFlow
上面所有的依赖安装成功后我们就可以安装TensorFlow
pip install tensorflow-1.1.0rc2-cp36-cp36m-manylinux1_x86_64.whl
这样TensorFlow我们就安装成功了
4、验证
安装完成后我们进行一下验证,TensorFlow环境是否成功
在命令行中输入python
#python
进入python编译模式
import tensorflow as tf
sess = tf.Session()
a = tf.constant(10)
b = tf.constant(22)
print(sess.run(a + b))
查看有无报错
tips
1.建议安装环境centos>7.glibc>2.17.gcc>CXXABI_1.3.7
2.如果使用anaconda3 5.51安装需要环境,安装后将anaconda钟点房html5lib删除换成tensorflow中的html99999的包
下载编译的python3包的百度云链接
因为csdn没办法上传大于220M的文件所以。只好放在百度云中。
链接: link.
密码: 在安装步骤文档里面有https://download.csdn.net/download/qq_26925867/10846034