操作系统: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 #安装模块
备注:如果编译出错
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
扩展阅读:
#修改系统默认的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完成。