当前位置 : 主页 > 编程语言 > python >

在离线的centos6.5服务器上搭建tensorflow

来源:互联网 收集:自由互联 发布时间:2022-06-18
现状   前段时间实现了一个深度学习检测模块,但产品所在环境为​Centos6.5 64​位版本,其环境软件版本(glibc, glibc++, python, python包)过低。但是由于产品部署环境为离线状态,所以各


现状

  前段时间实现了一个深度学习检测模块,但产品所在环境为​Centos6.5 64​位版本,其环境软件版本(glibc, glibc++, python, python包)过低。但是由于产品部署环境为离线状态,所以各种包只能先下载好,然后制作成升级包,最终进行产品升级。

预备知识

1.Centos, RedHat, Fedora之间的关系如下图所示,具体可参考链接(https://danielmiessler.com/study/fedora_redhat_centos/):

在离线的centos6.5服务器上搭建tensorflow_环境部署

  所以Centos的rpm安装包可以到Fedora的网站上去寻找。其中centos6.5注意版本号包含el6。

升级

升级glibc版本

  glibc是GNU发布的c运行库,几乎所有的进程和命令都会依赖于它,所以安装过程必须要谨慎(最好做好备份)。

  依次安装下列包,具体地址为:https://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/

  • rpm -Uvh glibc-2.17-55.el6.x86_64.rpm
  • rpm -Uvh glibc-common-2.17-55.el6.x86_64.rpm
  • rpm -Uvh glibc-devel-2.17-55.el6.x86_64.rpm
  • rpm -Uvh glibc-headers-2.17-55.el6.x86_64.rpm

升级glibcxx版本

  经过实验发现,glibcxx不需要安装,只需替换so库即可。下载地址可参考

  • cp libstdc++.so.6.0.22 /usr/lib64
  • rm -rf libstdc++.so.6
  • ln -s libstdc++.so.6.0.22 libstdc++.so.6
  • 升级Python(python2.7.10)

      由于Centos6.5自带的是python2.6,所以需要重新安装2.7。经过实验安装2.7.10即可。

      先说明之前给自己挖的一个坑:升级包并没有在官方网站上面下载,而是搜索下载了python-2.7.10.zip,导致后续出现各种bug。正确下载地址为:https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz

      正确安装命令如下所示:

    ./configure --enable-unicode=ucs4 --enable-shared(编译动态库) --prefix=/usr/local/python27(指定安装目录)
    make all
    make install

      --enable-unicode=ucs4指定unicode编码为4位,如果不指定默认就为2位,后续就会出现相关错误。–enable-shared会生成动态库,它是c语言调用python的接口。

    升级安装各种Python包

      由于为离线状态,无法直接pip安装包,只能下载好依赖包,然后进行安装。

    1.rpm -ivh python-argparse-1.2.1-2.1.el6.noarch.rpm

    2.pip install -r requirements.txt,其中requirements.txt的内容如下所示:

    distribute-0.7.3.zip
    androguard-3.0.tar.gz
    requests-2.5.1.tar.gz
    typing-3.6.4.tar.gz
    future-0.16.0.tar.gz
    M2Crypto-0.27.0.tar.gz
    setuptools-38.4.0.zip
    pefile-master.zip
    Pillow-2.1.0.zip
    enum34-1.1.6.tar.gz
    numpy-1.15.1.zip
    python_dateutil-2.8.0-py2.py3-none-any.whl
    pytz-2018.9-py2.py3-none-any.whl
    pandas-0.23.4.tar.gz
    six-1.11.0-py2.py3-none-any.whl
    protobuf-3.4.0.tar.gz
    html5lib-0.9999999.tar.gz
    bleach-1.5.0-py2.py3-none-any.whl
    Markdown-2.6.8.tar.gz
    futures-3.1.1-py2-none-any.whl
    wheel-0.26.0-py2.py3-none-any.whl
    Werkzeug-0.13-py2.py3-none-any.whl
    tensorflow_tensorboard-1.5.0-py2-none-any.whl
    backports.weakref-1.0rc1-py2-none-any.whl
    pbr-1.0.0-py2.py3-none-any.whl
    funcsigs-1.0.2-py2.py3-none-any.whl
    mock-2.0.0-py2.py3-none-any.whl
    absl-py-0.1.10.tar.gz
    tensorflow-1.5.0-cp27-none-linux_x86_64.whl
    esprima-4.0.1.tar.gz

    bug记录

      1.在之前的代码模块中有一句代码为from PIL import Image,而在新加的依赖包(tensorflow中也包括了Image),在c调取Python代码过程中,就会出现hash collisions(哈希冲突)。修改办法为把原有模块中的代码修改为import PIL。



    【文章转自台湾大带宽服务器 http://www.558idc.com/tw.html提供,感恩】
    上一篇:深度学习Python环境安装
    下一篇:没有了
    网友评论