前言
推荐在线安装。但工作需要,服务器不能连接外网,因此需要离线安装。
操作系统说明
操作系统:CentOS Linux release 7.4.1708 (Core)
操作系统安装包:CentOS-7-x86_64-Minimal-1708.iso
在线安装
Python版本:3.6.8
pip版本:9.0.3
virtualenv版本:20.4.2
(截至 2021年2月7日)
安装 Python 3 (默认包含 pip)
yum install python3 -y
安装完成后,验证安装情况
python3 -V
pip3 -V
升级 pip 版本(可不升级)
python3 -m pip install --upgrade pip
安装 virtualenv
pip3 install virtualenv -i https://pypi.douban.com/simple/
建立软连接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
安装完成后,验证安装情况
virtualenv --version
PS : 如果安装研发环境中对应的 Python 版本
离线安装
环境&组件说明
Python版本:3.8.5
pip版本:20.1.1
virtualenv版本:20.4.2
组件用途说明
pip :是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
virtualenv:就是用来为一个应用创建一套“隔离”的Python运行环境。
安装步骤
1、安装依赖:gcc、gcc-c++、zlib-devel、openssl-devel。注意:一定要先安装gcc,再安装gcc-c++。然后再安装其他,其他的没有先后顺序。
2、安装 Python 环境。
详细步骤
准备安装(搜集&下载)
1、查看 操作系统是否安装 gcc、gcc-c++ :
查看是否安装 gcc 的命令:
gcc -v
查看是否安装 gcc-c++ 的命令:
g++ -v
2、(如果已经安装 gcc ,忽略此步骤。)在 CentOS 7 的安装镜像 (CentOS-7-x86_64-Everything-1708.iso 中肯定有),packages 目录,找到安装 gcc 相关的 rpm 包,并放到一个文件夹里(命名1),列表如下(注意:不同版本的操作系统,对应的rpm版本也不同):
序号 | 安装包 |
---|---|
1 | cpp-4.8.5-28.el7.x86_64.rpm |
2 | gcc-4.8.5-28.el7.x86_64.rpm |
3 | glibc-2.17-222.el7.x86_64.rpm |
4 | glibc-common-2.17-222.el7.x86_64.rpm |
5 | glibc-devel-2.17-222.el7.x86_64.rpm |
6 | glibc-headers-2.17-222.el7.x86_64.rpm |
7 | kernel-headers-3.10.0-862.el7.x86_64.rpm |
8 | libmpc-1.0.1-3.el7.x86_64.rpm |
9 | mpfr-3.1.1-4.el7.x86_64.rpm |
3、(如果已经安装 gcc-c++ ,忽略此步骤。)在 CentOS 7 的安装镜像,packages 目录,找到安装 gcc-c++ 相关的 rpm 包,并放到一个文件夹里(命名2),列表如下(注意:不同版本的操作系统,对应的rpm版本也不同):
序号 | 安装包 |
---|---|
1 | gcc-c+±4.8.5-28.el7.x86_64.rpm |
2 | libstdc+±devel-4.8.5-28.el7.x86_64.rpm |
4、检查是否安装 zlib-devel (注意 : 是 zlib-devel , 不是 zlib)
rpm -qa|grep zlib-devel
5、(如果已经安装 zlib-devel ,忽略此步骤。)在 CentOS 7 的安装镜像,packages 目录,找到相关的 rpm 包,并放到一个文件夹里(命名3),列表如下(注意:不同版本的操作系统,对应的rpm版本也不同):
序号 | 安装包 |
---|---|
1 | zlib-devel-1.2.7-17.el7.x86_64.rpm |
6、检查是否安装 openssl-devel (注意 : 有 -devel)
rpm -qa|grep openssl-devel
7、(如果已经安装 openssl-devel ,忽略此步骤。)在 CentOS 7 的安装镜像,packages 目录,找到相关的 rpm 包,并放到一个文件夹里(命名4),列表如下(注意:不同版本的操作系统,对应的rpm版本也不同):
序号 | 安装包 |
---|---|
1 | openssl-devel-1.0.2k-8.el7.x86_64.rpm |
openssl-devel 所需要的依赖(套娃!!!)
序号 | 安装包 |
---|---|
1 | keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm |
2 | krb5-devel-1.15.1-8.el7.x86_64.rpm |
3 | libcom_err-devel-1.42.9-10.el7.x86_64.rpm |
4 | libkadm5-1.15.1-8.el7.x86_64.rpm |
5 | libselinux-devel-2.5-11.el7.x86_64.rpm |
6 | libverto-devel-0.2.5-4.el7.x86_64.rpm |
8、下载离线安装包,放到文件夹1、2、3、4的同级目录:
Python-3.8.5.tar.xz
9、下载离线安装文件 virtualenv 及其依赖
序号 | 安装包 |
---|---|
1 | virtualenv-20.4.2-py2.py3-none-any.whl |
virtualenv 的依赖
序号 | 安装包 |
---|---|
1 | appdirs-1.4.4-py2.py3-none-any.whl |
2 | distlib-0.3.1-py2.py3-none-any.whl |
3 | filelock-3.0.12-py3-none-any.whl |
4 | six-1.15.0-py2.py3-none-any.whl |
安装依赖
1、安装 gcc (如果已经安装 gcc ,忽略此步骤。):
进入到文件夹1
rpm -Uvh *.rpm --nodeps --force
确认安装情况
gcc -v
2、安装 gcc-c++ (如果已经安装 gcc-c++ ,忽略此步骤。):
进入到文件夹2
rpm -Uvh *.rpm --nodeps --force
确认安装情况
g++ -v
3、安装 zlib-devel (如果已经安装,忽略此步骤):
进入到文件夹3
rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm
确认安装情况
rpm -qa|grep zlib-devel
4、安装 openssl-devel 及其依赖(如果已经安装,忽略此步骤):
进入到文件夹4
rpm -Uvh *.rpm --nodeps --force
确认安装情况
rpm -qa|grep openssl-devel
安装 Python
上传,将文件 Python-3.8.5.tar.xz 解压为 Python-3.8.5.tar :
xz -d Python-3.8.5.tar.xz
将文件 Python-3.8.5.tar 解压为文件夹 Python-3.8.5 :
tar -xf Python-3.8.5.tar
进入文件夹
cd Python-3.8.5
配置安装路径(注意参数 –with-ssl ,如果不加,在使用 pip 和 virtualenv 时,会报错。使用这个的前提是安装了 openssl-devel):
./configure --prefix=/usr/local/python3 --with-ssl
编译、安装:
make && make altinstall
安装完成之后 建立软链接 添加变量 方便在终端中直接使用 python 3
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
Python 3 安装完成之后 pip 3 也一块安装完成,不需要再单独安装.一样建立软链接:
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
测试是否安装成功
python3 -V
pip3 -V
安装 virtualenv
安装 virtualenv 依赖
pip3 install distlib-0.3.1-py2.py3-none-any.whl six-1.15.0-py2.py3-none-any.whl appdirs-1.4.4-py2.py3-none-any.whl filelock-3.0.12-py3-none-any.whl
安装 virtualenv
pip3 install virtualenv-20.4.2-py2.py3-none-any.whl
软连接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
验证安装情况
virtualenv --version
异常处理
异常信息
ModuleNotFoundError: No module named '_ctypes'
原因分析
由于在 CentOS 7 系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在 pip 安装的时候就报了 “ModuleNotFoundError: No module named ‘_ctypes’” 的错误
处理方法
安装外部函数库 ( libffi )
在 CentOS 7 的安装镜像,packages 目录,找到文件 libffi-devel-3.0.13-18.el7.x86_64.rpm, 安装命令如下
rpm -ivh libffi-devel-3.0.13-18.el7.x86_64.rpm
重新安装 python , 进入安装目录
make && make altinstall
用 pip3 Install 重新安装所需要的包
pip3 install SomeProject
小技巧
如何查找离线安装的依赖及安装顺序?
找个在线安装的环境,安装 *.whl ,可以查看到依赖情况,然后去下载所需依赖 *.whl ;
注意 : 需要按照顺序安装。
分享是一种美德,当你分享时请你附带上本文链接。
请登录后查看评论内容