一、服务器环境

系统:CentOS 7

用户:root

Python版本:python3.6.7

二、安装步骤

1,找个联网的计算机,下载安装包和依赖

python下载地址:https://www.python.org/ftp/python/

依赖:

yumdownloader --resolve --destdir=/home/packages zlib zlib-devel bzip2-devel epel-release ncurses-devel mpfr libmpc kernel-headers glibc glibc-common glibc-headers glibc-devel cpp gcc libffi-devel libgcc libgomp libstdc++ libstdc++-devel gcc-c++

注:使用 yumdownloader 命令 需先安装yum-utils
—destdir:指定 rpm 包下载目录(不指定时,默认为当前目录)
—resolve:下载依赖的 rpm 包

2,登录到centOS机器,新建文件夹
mkdir /usr/local/python3

将安装包和依赖包里的文件上传至/usr/local/python3

3,进入目录

cd /usr/local/python3/

4,安装依赖

rpm -Uvh --force --nodeps *rpm

linux离线环境下安装python3 linux离线安装python库_python


5,进行解压

tar -xzvf Python-3.6.7.tgz

注意:如果你下载的python包是tar.xz格式的需要先执行

xz -d Python-3.6.7.tar.xz

然后获得一个Python-3.6.7.tar,再执行

tar -xvf Python-3.6.7.tar

就能解压成功了

6,进入解压路径

cd /usr/local/python3/Python-3.6.7

7,设置安装路径

./configure --prefix=/usr/local/tools/python3.6.7 --enable-shared

make && make install

8,建立软连接(Python与pip都建立软连接,分别为python3、pip3与系统自带的Python2区分)

ln -s /usr/local/tools/python3.6.7/bin/python3.6 /usr/bin/python3

ln -s /usr/local/tools/python3.6.7/bin/pip3.6 /usr/bin/pip3

使用命令ls -l /usr/bin/查看软连接是否已创建成功:

9,配置python3.6的lib到ldconfig

vi /etc/ld.so.conf.d/python3.conf,添加如下内容

/usr/local/tools/python3.6.7/lib

或者直接执行:echo “/usr/local/tools/python3.6.7/lib” > /etc/ld.so.conf.d/python3.6.conf

然后执行:ldconfig

10,检查Python3.6.7是否安装成功

命令行输入python3

或者python3 -V

三、配置环境变量

配置环境变量主要是能快速使用pip3安装命令。

执行 vi ~/.bash_profile,打开配置文件,添加如下配置:

#配置python

export PYTHON_HOME=/usr/local/tools/python3.6.7

export PATH=$PYTHON_HOME/bin:$PATH

保存退出(:wq),执行source ~/.bash_profile命令使配置生效。

执行echo $PYTHON_HOME命令,查看是否配置成功

四、升级pip

  1. 准备好pip更新用轮子

链接: https://pypi.org/project/pip/#files

linux离线环境下安装python3 linux离线安装python库_linux_02


2、上传到服务器

3. 运行python -m pip install --upgrade pip-22.3.1-py3-none-any.whl (注意:pip轮子的文件名.whl,一定要有后缀)

五、出现 No module named ‘_ssl’,解决方案

1、 查看系统信息(这一步很关键)

linux离线环境下安装python3 linux离线安装python库_linux_03


确定了系统才能知道需要下载什么版本的依赖!!!

对比看缺什么,其中 openssl-1.0.x86_64 和openssl-develx86_64 这两个是必须的,如果没有,那就去下载。

2、下载缺失包

下载时一定要注意版本的对应

下载方法1

http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ http://mirror.centos.org/centos/7/updates/x86_64/Packages/ 这两个地址里面的东西是相当全乎的

安装这两个东西的时候可能会缺少依赖,在地址中仔细找找,都有的

参考:

OpenSSL 依赖包清单参考如下(镜像站下载)

keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm

krb5-devel-1.15.1-50.el7.x86_64.rpm

krb5-libs-1.15.1-50.el7.x86_64.rpm

libcom_err-1.42.9-19.el7.x86_64.rpm

libcom_err-devel-1.42.9-19.el7.x86_64.rpm

libkadm5-1.15.1-50.el7.x86_64.rpm

libselinux-2.5-15.el7.x86_64.rpm

libselinux-devel-2.5-15.el7.x86_64.rpm

libsepol-devel-2.5-10.el7.x86_64.rpm

libverto-devel-0.2.5-4.el7.x86_64.rpm

openssl-1.0.2k-19.el7.x86_64.rpm

openssl-devel-1.0.2k-19.el7.x86_64.rpm

openssl-libs-1.0.2k-19.el7.x86_64.rpm

openssl-perl-1.0.2k-19.el7.x86_64.rpm

openssl-static-1.0.2k-19.el7.x86_64.rpm

pkgconfig-0.27.1-4.el7.x86_64.rpm

zlib-devel-1.2.7-18.el7.x86_64.rpm

查看验证openssl版本

#版本查看

openssl version

linux离线环境下安装python3 linux离线安装python库_SSL_04

一定要看

虽然已经列出了openssl的依赖包,但每个机器使用的镜像可能不相同,所需依赖的包也不尽相同,缺失什么依赖去镜像站下载即可。
下载方法2
在有网的机器上下载然后再离线安装

yumdownloader --resolve --destdir=/home/openssl  openssl-devel-1.0.2k-25.el7_9.x86_64

3、上传至 /usr/local/ssl
进入目录 cd /usr/local/ssl
4、按照提示安装依赖包
rpm -ivh openssl-devel-1.0.2k-19.el7.x86_64.rpm
5、查看openssl的安装位置

whereis opemssl

linux离线环境下安装python3 linux离线安装python库_运维_05

5、修改python文件
进到Python-3.6.0安装目录,
有Modules这个目录,cd Modules,找到Setup.dist这个文件,vi Setup.dist 打开
找到

#SSL=/usr/local/ssl
#_ssl _ssl.c \
#       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
#       -L$(SSL)/lib -lssl -lcrypto

修改为

SSL=/usr/
_ssl _ssl.c \
       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
       -L$(SSL)/lib -lssl -lcrypto

注意要根据openssl的安装位置修改
6、重新安装python

./configure --prefix=/usr/local/tools/python3.6.7 --with-ssl
make
make install

7、测试

python3中,执行import

linux离线环境下安装python3 linux离线安装python库_linux离线环境下安装python3_06