操作系统:CentOS-7.x
1、创建目录
mkdir -p /data/server/soft #软件包存放目录
2、下载Python3
https://www.python.org/ftp/python/
https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz
3、下载OpenSSL(Python3需要高版本openssl支持)
下载地址:https://www.openssl.org/source/openssl-1.1.1w.tar.gz
#上传安装包到软件包存放目录/data/server/soft
4、安装必要的依赖
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel gcc gfortran python3-devel
yum install libffi-devel zlib1g-dev zlib* perl
yum install centos-release-scl
yum install devtoolset-8-toolchain
scl enable devtoolset-8 bash
vi ~/.bashrc
# Enable devtoolset-8 toolchain
source scl_source enable devtoolset-8
:wq! #保存退出
5、安装OpenSSL
mkdir -p /data/server/openssl
cd /data/server/soft
tar zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config -fPIC shared zlib --prefix=/data/server/openssl
make
make install
openssl version #查看当前版本
which openssl #查找安装目录
mv /usr/bin/openssl /usr/bin/openssl.bak
# 创建软连接
ln -s /data/server/openssl/bin/openssl /usr/bin/openssl
#向动态链接库配置文件添加新的OpenSSL库路径
echo "/data/server/openssl/lib" >> /etc/ld.so.conf
ldconfig -v #刷新动态链接库缓存,使新配置生效
openssl version #查看版本
6、安装Python3
cd /data/server/soft
tar zxvf Python-3.12.0.tgz
cd Python-3.12.0
./configure --prefix=/data/server/python3 --with-openssl=/data/server/openssl
make
make install
which python3 #查找默认的python3安装路径
which pip3
mv /usr/bin/python3 /usr/bin/python3.bak #备份当前的python3版本
mv /usr/bin/pip3 /usr/bin/pip3.bak #备份当前的pip3版本
ln -sf /data/server/python3/bin/python3 /usr/bin/python3 #添加python3软连接
ln -sf /data/server/python3/bin/pip3 /usr/bin/pip3 #添加pip3软连接
#向动态链接库配置文件添加新的python3库路径
echo "/data/server/python3/lib" >> /etc/ld.so.conf
ldconfig -v #刷新动态链接库缓存,使新配置生效
python3 -V #查看python3版本
pip3 -V #查看pip3版本
python3 #进入python3
import ssl #导入ssl模块
pip3 install -i https://mirrors.aliyun.com/pypi/simple/ numpy #安装模块
pip3 download --index-url https://mirrors.aliyun.com/pypi/simple/ ansible==2.9.27 #只下载模块
备注:如果编译出错
make distclean #清理
export LD_LIBRARY_PATH=/data/server/openssl/lib:$LD_LIBRARY_PATH #设置环境变量,再次编译
#编译报错
Modules/_cursesmodule.c:2564:35: error: implicit declaration of function ‘setupterm’; did you mean ‘set_term’? [-Werror=implicit-function-declaration]
#解决方法
sed -i "s/Werror=implicit-function-declaration/Wno-error/g" configure #修改configure文件,取消了隐式函数声明的错误处理
make clean
make
7、修改pip默认的包管理源
#查看当前的 pip3 配置
pip3 config list
#只对当前用户生效
cd ~ # 进入用户的家目录
mkdir -p .pip # 创建 .pip 文件夹
cd .pip
vi pip.conf # 编辑器打开 pip.conf 文件
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
:wq! #保存退出,这里的 index-url 指定了 pip 使用的镜像源地址为阿里云的 PyPI 镜像地址。
#对系统生效
vi /etc/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
:wq! #保存退出
pip3 config list #查看当前的 pip3 配置
扩展阅读:
#修改系统默认的python版本为python3
which python #查找默认的python安装路径
sudo mv /usr/bin/python /usr/bin/python.bak
sudo mv /usr/bin/pip /usr/bin/pip.bak
sudo ln -sf /usr/bin/python3 /usr/bin/python
sudo ln -sf /usr/bin/pip3 /usr/bin/pip
sudo python --version #检查系统默认的python
至此,Linux下编译安装Python3完成。