如何基于CentOS 7.x编译安装Python 3.10.0?

Python

1 前言

一个问题,一篇文章,一出故事。
今天遇到CentOS 7.x Python版本过旧需要安装新版本的Python 3.7.9,于是通过编译解决。

2 最佳实践

2.1 CentOS环境配置

如何完成CentOS 7.x的基本服务?

2.2 安装前的准备

2.2.1 安装编译环境

yum -y install gcc gcc-c++ make expat-devel

2.2.2 编译安装兼容的OpenSSL版本

如何基于CentOS 7.x编译安装OpenSSL?


需要注意的是,本章需要安装“openssl-1.1.1c”

2.2.3 下载Python软件包

wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz

另外,以上只是演示,如下载异常或需要其他版本,请参阅如下链接,
https://www.python.org/downloads/source/
https://www.python.org/downloads/

2.2.4 创建Python用户

useradd python310
echo 'python310pwd' | passwd --stdin python310

2.3 编译安装

2.3.1 执行预编译

cd ~/Python-3.10.0
./configure --prefix=/usr/local/Python-3.10.0 \
--with-openssl=/usr/local/openssl-1.1.1c \
--with-openssl-rpath=auto \
--enable-shared \
--with-ensurepip=install \
--enable-optimizations

Python从设计上就运行多版本并存,所以无需卸载旧版本,另外根据安装的环境,你可能需要安装如下依赖包,

yum install -y openssl-devel libffi-devel ncurses-devel gdbm-devel zlib-devel bzip2-devel xz-devel sqlite-devel readline-devel tk-devel libuuid-devel nss-devel mpdecimal-devel

2.3.2 执行编译

cd ~/Python-3.10.0
make

2.3.3 编译并安装

cd ~/Python-3.10.0
make install

2.3.4 配置环境变量

su - python310
vim ~/.bashrc

加入如下配置,

export PYTHONHOME="/usr/local/Python-3.10.0"
export PATH="${PYTHONHOME}/bin:$PATH"
export LD_LIBRARY_PATH="${PYTHONHOME}/lib/:$LD_LIBRARY_PATH"

if [ -z "$PYTHONPATH" ]; then
    export PYTHONPATH="${PYTHONHOME}/lib/python3.10/site-packages"
else
    export PYTHONPATH="${PYTHONHOME}/lib/python3.10/site-packages:$PYTHONPATH"
fi
alias python='/usr/local/Python-3.10.0/bin/python3.10'
alias pip='/usr/local/Python-3.10.0/bin/pip'

修改完配置文件,你需要通过如下命令导入环境变量,

source ~/.bashrc

2.3.5 测试安装

su - python310
python3 -V

可见如下提示,

Python 3.10.0

另外,如下命令测试pip,

su - python310
pip -V

可见如下提示,

pip 26.0.1 from /usr/local/Python-3.10.0/lib/python3.10/site-packages/pip (python 3.10)

2.3.6 配置库文件

echo '/usr/local/Python-3.10.0/lib' > /etc/ld.so.conf.d/python3.10.0.conf

然后,你需要执行如下命令加载库文件,

ldconfig -v

2.3.7 升级基础软件包

/usr/local/Python-3.10.0/bin/python3.10 -m pip install --upgrade pip -i https://pypi.python.org/simple
/usr/local/Python-3.10.0/bin/python3.10 -m pip install --upgrade setuptools -i https://pypi.python.org/simple
没有评论

发表回复

Python
如何解决普通用户pip命令异常的错误?

1 前言 一个问题,一篇文章,一出故事。 笔者今天部署Python3.7.9环境,遇到普通用户下运行 …

Python
如何创建Miniforge的虚拟化环境?

1 前言 一个问题,一篇文章,一出故事。 笔者昨天完成Miniforge的环境部署,今天需要测试Mi …

Python
如何安装Miniforge的软件包?

1 前言 一个问题,一篇文章,一出故事。 笔者昨天完成Miniforge的环境部署,今天需要测试批量 …