CentOS 7 离线搭建 Python 3.8.5 机器学习环境

在很多生产环境是禁止访问外网的,yum和pip虽然很香,但是没了网就废了,只能手动编译安装各种依赖包。

0、假设gcc和g++已安装好(最基础的编译环境)

#查看C和C++编译器的版本
gcc --version
g++ --version

1、需要准备如下安装包,并上传到服务器

offlinePackage/
├── python(16)
│   ├── Cython-0.29.24-cp38-cp38-manylinux1_x86_64.whl
│   ├── future-0.18.2.tar.gz
│   ├── joblib-1.0.1-py3-none-any.whl
│   ├── numpy-1.19.5-cp38-cp38-manylinux1_x86_64.whl
│   ├── pandas-1.2.3-cp38-cp38-manylinux1_x86_64.whl
│   ├── pipdeptree-2.0.0-py3-none-any.whl
│   ├── PyHive-0.6.4.tar.gz
│   ├── Python-3.8.5.tgz
│   ├── python_dateutil-2.8.2-py2.py3-none-any.whl
│   ├── pytz-2021.1-py2.py3-none-any.whl
│   ├── scikit_learn-0.23.2-cp38-cp38-manylinux1_x86_64.whl
│   ├── scipy-1.5.4-cp38-cp38-manylinux1_x86_64.whl
│   ├── six-1.16.0-py2.py3-none-any.whl
│   ├── threadpoolctl-2.2.0-py3-none-any.whl
│   ├── thrift-0.13.0.tar.gz
│   └── xgboost-1.3.3-py3-none-manylinux2010_x86_64.whl
└── rpm(11)
    ├── bzip2-1.0.6-13.el7.x86_64.rpm
    ├── bzip2-devel-1.0.6-13.el7.x86_64.rpm
    ├── bzip2-libs-1.0.6-13.el7.x86_64.rpm
    ├── libffi-3.0.13-19.el7.x86_64.rpm
    ├── libffi-devel-3.0.13-19.el7.x86_64.rpm
    ├── python-backports-1.0-8.el7.x86_64.rpm
    ├── python-backports-lzma-0.0.2-9.el7.x86_64.rpm
    ├── xz-devel-5.2.2-1.el7.x86_64.rpm
    ├── zlib-1.2.7-18.el7.x86_64.rpm
    ├── zlib-devel-1.2.7-18.el7.x86_64.rpm
    └── zlib-static-1.2.7-18.el7.x86_64.rpm



A、下载RPM包
#libffi
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libffi-3.0.13-19.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/libffi-devel-3.0.13-19.el7.x86_64.rpm
#zlib
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/zlib-1.2.7-18.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/zlib-devel-1.2.7-18.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/zlib-static-1.2.7-18.el7.x86_64.rpm
#bzip2
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/bzip2-1.0.6-13.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/bzip2-libs-1.0.6-13.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/bzip2-devel-1.0.6-13.el7.x86_64.rpm
#python-backports-lzma
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-backports-1.0-8.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/extras/x86_64/Packages/python-backports-lzma-0.0.2-9.el7.x86_64.rpm
#xz-devel
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/xz-devel-5.2.2-1.el7.x86_64.rpm
B、下载Python包
#Python==3.85
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
#Cython==0.29.24
wget https://files.pythonhosted.org/packages/aa/eb/9f453315a0702349fff2147f88e2a147035168f152c03684e94b90ed17ec/Cython-0.29.24-cp38-cp38-manylinux1_x86_64.whl
#pipdeptree==2.0.0
wget https://files.pythonhosted.org/packages/fa/22/8f1350b55e4297670813815142425b58829036197f0b4a0fc8f543928717/pipdeptree-2.0.0-py3-none-any.whl
#six==1.16.0
wget https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl
#thrift==0.13.0
wget https://files.pythonhosted.org/packages/97/1e/3284d19d7be99305eda145b8aa46b0c33244e4a496ec66440dac19f8274d/thrift-0.13.0.tar.gz
#python-dateutil==2.8.2
wget https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl
#numpy==1.19.5
wget https://files.pythonhosted.org/packages/21/da/4a59e01f8fff4281a068e90868edd62253c1431a1b7315fe6789f8a0d9c0/numpy-1.19.5-cp38-cp38-manylinux1_x86_64.whl
#pytz==2021.1
wget https://files.pythonhosted.org/packages/70/94/784178ca5dd892a98f113cdd923372024dc04b8d40abe77ca76b5fb90ca6/pytz-2021.1-py2.py3-none-any.whl
#pandas==1.2.3
wget https://files.pythonhosted.org/packages/e3/a8/11b157725988409063dff720be51b4dcca2260f2cc4547853172c9b4e6ec/pandas-1.2.3-cp38-cp38-manylinux1_x86_64.whl
#future==0.18.2
wget https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz
#PyHive==0.6.4
wget https://files.pythonhosted.org/packages/7a/3b/379563ead1d431b946d5d20b8c3b960c318581926702040931aaa2d5cf28/PyHive-0.6.4.tar.gz
#scipy==1.5.4
wget https://files.pythonhosted.org/packages/ab/a3/4e10c6091f6b17267e23a6de77c05241834fb3a1ec6ad655b566a6ea1d82/scipy-1.5.4-cp38-cp38-manylinux1_x86_64.whl
#xgboost==1.3.3
wget https://files.pythonhosted.org/packages/2e/57/bf5026701c384decd2b995eb39d86587a103ba4eb26f8a9b1811db0896d3/xgboost-1.3.3-py3-none-manylinux2010_x86_64.whl
#joblib==1.0.1
wget https://files.pythonhosted.org/packages/55/85/70c6602b078bd9e6f3da4f467047e906525c355a4dacd4f71b97a35d9897/joblib-1.0.1-py3-none-any.whl
#threadpoolctl==2.2.0
wget https://files.pythonhosted.org/packages/c6/e8/c216b9b60cbba4642d3ca1bae7a53daa0c24426f662e0e3ce3dc7f6caeaa/threadpoolctl-2.2.0-py3-none-any.whl
#scikit-learn==0.23.2
wget https://files.pythonhosted.org/packages/7f/c1/e19f767594035028b6ab88010742300ce5fcbdfeff051fc9afffcbebf644/scikit_learn-0.23.2-cp38-cp38-manylinux1_x86_64.whl

2、安装rpm依赖包(需root权限)

#查询若无则安装libffi-devel
rpm -qa|grep libffi-devel
sudo rpm -ivh libffi-devel-3.0.13-19.el7.x86_64.rpm
#若libffi版本比较低,则需要先升级一下
sudo rpm -Uvh libffi-3.0.13-19.el7.x86_64.rpm

#查询若无则安装zlib-devel
rpm -qa|grep zlib-devel
sudo rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

#查询若无则安装zlib-static
rpm -qa|grep zlib-static
sudo rpm -ivh zlib-static-1.2.7-18.el7.x86_64.rpm
#若zlib和zlib-devel都已安装好,但版本较低,则需要升级一下,需要用一条命令同时升级,因为循环依赖
rpm -Uvh zlib-1.2.7-18.el7.x86_64.rpm zlib-devel-1.2.7-18.el7.x86_64.rpm 

#升级或安装bzip2
rpm -Uvh bzip2-1.0.6-13.el7.x86_64.rpm
rpm -Uvh bzip2-libs-1.0.6-13.el7.x86_64.rpm
rpm -Uvh bzip2-devel-1.0.6-13.el7.x86_64.rpm

#安装python-backports
rpm -Uvh python-backports-1.0-8.el7.x86_64.rpm
rpm -Uvh python-backports-lzma-0.0.2-9.el7.x86_64.rpm

#安装zx
rpm -Uvh xz-devel-5.2.2-1.el7.x86_64.rpm

3、安装Python 3.8.5

tar -zxvf Python-3.8.5.tgz
cd Python-3.8.5
./configure --prefix=/home/lq/python3 --with-ssl
make && make install
#配置python3
#vi ~/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/lq/python3/bin
source ~/.bash_profile
#查看python版本和pip版本
python3 -V
pip3 -V
#查看已安装的python包
pip3 list

4、按顺序安装Python包

pip3 install Cython-0.29.24-cp38-cp38-manylinux1_x86_64.whl
pip3 install pipdeptree-2.0.0-py3-none-any.whl
pip3 install six-1.16.0-py2.py3-none-any.whl
pip3 install python_dateutil-2.8.2-py2.py3-none-any.whl
pip3 install numpy-1.19.5-cp38-cp38-manylinux1_x86_64.whl
pip3 install pytz-2021.1-py2.py3-none-any.whl
pip3 install pandas-1.2.3-cp38-cp38-manylinux1_x86_64.whl

tar -zxvf thrift-0.13.0.tar.gz
cd thrift-0.13.0 && python3 setup.py install && cd ..

tar -zxvf future-0.18.2.tar.gz
cd future-0.18.2 && python3 setup.py install && cd ..

tar -zxvf PyHive-0.6.4.tar.gz
cd PyHive-0.6.4 && python3 setup.py install && cd ..

pip3 install scipy-1.5.4-cp38-cp38-manylinux1_x86_64.whl
pip3 install xgboost-1.3.3-py3-none-manylinux2010_x86_64.whl
pip3 install joblib-1.0.1-py3-none-any.whl
pip3 install threadpoolctl-2.2.0-py3-none-any.whl
pip3 install scikit_learn-0.23.2-cp38-cp38-manylinux1_x86_64.whl

5、查看Python包的依赖关系树

#查看依赖树
pipdeptree

Cython==0.29.24
pandas==1.2.3
  - numpy [required: >=1.16.5, installed: 1.19.5]
  - python-dateutil [required: >=2.7.3, installed: 2.8.2]
    - six [required: >=1.5, installed: 1.16.0]
  - pytz [required: >=2017.3, installed: 2021.1]
pipdeptree==2.0.0
  - pip [required: >=6.0.0, installed: 21.1.3]
PyHive==0.6.4
  - future [required: Any, installed: 0.18.2]
  - python-dateutil [required: Any, installed: 2.8.2]
    - six [required: >=1.5, installed: 1.16.0]
scikit-learn==0.23.2
  - joblib [required: >=0.11, installed: 1.0.1]
  - numpy [required: >=1.13.3, installed: 1.19.5]
  - scipy [required: >=0.19.1, installed: 1.5.4]
    - numpy [required: >=1.14.5, installed: 1.19.5]
  - threadpoolctl [required: >=2.0.0, installed: 2.2.0]
setuptools==47.1.0
xgboost==1.3.3
  - numpy [required: Any, installed: 1.19.5]
  - scipy [required: Any, installed: 1.5.4]
    - numpy [required: >=1.14.5, installed: 1.19.5]

6、安装好不一定是真的好,还需要导入验证

import Cython
import future
import joblib
import numpy
import pandas
import pipdeptree
import pyhive
import dateutil
import pytz
import sklearn
import scipy
import six
import threadpoolctl
import thrift

如果导入没有问题,那么环境才算搭建好。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值