CentOS7源码编译安装Python3.X
下载Python源码包
- Python官网:https://www.python.org/
- Python源码包下载地址:https://www.python.org/downloads/source/
说明
建议下载Gzipped source tarball格式的源码包
安装前准备
安装编译工具和依赖库
1 | yum install zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make libffi-devel -y |
安装OpenSSL
在https://www.openssl.org/source/下载OpenSSL安装包并解压到/usr/local/src/
1 | tar zxf openssl-1.1.1w.tar.gz -C /usr/local/src/ |
安装perl
1 | yum install perl -y |
说明
执行./config时需要Perl5版本,否则会提示You need Perl 5.
编译并安装OpenSSL
1 | cd /usr/local/src/openssl-1.1.1w/ |
将OpenSSL动态库路径添加到/etc/ld.so.conf中
1 | echo '/usr/local/ssl-1.1.1w/lib/' >> /etc/ld.so.conf |
安装Python
解压Python源码包
1 | tar zxf Python-3.12.1.tgz |
编译安装Python
1 | cd Python-3.12.1 |
说明
通过--with-openssl参数指定OpenSSL的路径为上一步的安装路径
配置PATH环境变量
因为CentOS7系统自带有Python2,如果直接执行python运行的是Python2,需要输入绝对路径/usr/local/python-3.12.1/bin/python3才可以运行刚才安装好的Python3,但是每次都要输入绝对路径太麻烦了,所以就需要编辑/etc/profile在文件末尾增加以下内容修改PATH环境变量
1 | export PATH=$PATH:/usr/local/python-3.12.1/bin/ |
执行以下命令使配置生效
1 | source /etc/profile |
配置好PATH环境变量之后,直接执行python3即可运行Python3,方便了许多~
说明
如果你想执行pyhton的时候运行的是Python3而不是Python2,还需要最后做一件事情,那就是执行以下命令重建/usr/bin/python这个软链接,将源文件指向/usr/local/python-3.12.1/bin/python3
1
2 rm -rf /usr/bin/python
ln -s /usr/local/python-3.12.1/bin/python3 /usr/bin/python要注意的是这样操作之后会导致系统的
yum命令无法使用,因为/usr/bin/yum中指定的Python解释器是/usr/bin/python,重建软链接后会变成调用Python3导致yum执行失败。因此为了使得yum命令可以正常使用,需要编辑/usr/bin/yum文件,将首行的#!/usr/bin/python修改为#!/usr/bin/python2
安装pip
pip官方安装文档:https://pip.pypa.io/en/stable/installation/
1 | wget https://bootstrap.pypa.io/get-pip.py |