centos7离线安装pthon3.8
因服务器无外网环境,所以事先需要把所有离线的依赖都准备好。
安装前的准备
先在有外网环境的机器上准备依赖
- 安装 centos-release-scl 第三方yum源
yum install centos-release-scl
- 安装 yum 依赖下载插件
yum install yum-plugin-downloadonly
- 下载 Python 及 Yum 依赖
# 下载 python 源码
wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
# 下载依赖, python_dependencies 为保存的目标文件夹
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel --downloadonly --downloaddir=python_dependencies
- 下载并保存高版本GCC
yum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils --downloadonly --downloaddir=redis_dependencies
- 下载 Python 模块依赖
# 导出使用的依赖
pip freeze > requirements.txt
# 建议在导出后,将 pip,wheel,setuptools 手动写入到 requirements 文件中。
# 下载, -d 为目标文件夹
pip download -d mylib -r requirements.txt
开始Python 离线安装
在离线服务器上操作:
- 离线安装 Yum 依赖(需 root)
rpm -Uvh --force --nodeps ./python_dependencies/*.rpm
rpm -Uvh --force --nodeps ./redis_dependencies/*.rpm
- 启用高版本 GCC(为了在编译时执行 --enable-optimizations, GCC 安装可参见 Gcc 安装)
scl enable devtoolset-9 bash
gcc -v
- 解压 Python 源码
tar -zxf Python-3.8.5.tgz -C /home/user/app/python3
- 配置 make 文件, 指定可执行文件目录:
cd /home/user/app/python3/Python-3.8.5
./configure prefix=/home/user/app/python3 --enable-optimizations
- 执行编译:
make
- 执行安装
make install
- 进入到 /home/user/app/python3/bin 目录下,执行 python3 看是否成功
./python3 --version
- 配置环境变量,source 后生效:
vim ~/.bash_profile
export PYTHON3_PATH=/home/user/app/python3
export PATH=$PYTHON3_PATH/bin:$PATH
source ~/.bash_profile
导入离线依赖
pip3 install --no-index --find-links=./mylib -r requirements.txt # 使用离线安装包,安装指定文件内的内容
常见问题
在使用pip时,如果遇到一下错误,请建立虚拟环境
cd /home/user/app/python3
#创建虚拟环境
python3 -m venv tutorial-env
#激活虚拟环境
source tutorial-env/bin/activate
#退出虚拟环境
deactivate