本文使用源码安装Python。
虽然centos8暴毙,不再更新,但是还得使用centos8,原因是centos7的gcc版本过低!至于python是否要更新到最新版本,看自己需求了~
下面,使用root身份进行的安装(非root请用sudo), 并且前置安装了一些我需要的开发包,您可以去掉不需要的(以下黑色加粗字体为命令):
yum install gcc openssl-devel pcre-devel zlib-devel make gcc-c++
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel
官网下载源码包:
wget https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tgz
之后解压:
tar -xvzf Python-3.10.1.tgz
进入Python源目录:
cd Python-3.10.1
编译安装参数:
./configure --prefix=/usr/local/python3 --enable-optimizations
注意:
1,--prefix=/usr/local/python3 参数:指定了安装位置
2,--enable-optimizations 参数:项来优化Python二进制文件。 这会使构建过程变慢,但是据说可以提升某些内置模块10%的性能?
安装:
make && make install
注意:
1,make可以修改-j以对应于处理器中的内核数。例如:make -j 4
2,标准的make install,它貌似会覆盖系统自带的一些python二进制文件?(这里不确定)如果想安装多版本,可以使用make altinstall 命令。
建立软连接:
之后,查看一下安装目录:/usr/local/python3/bin下的文件,我们准备建立软连接用 :
注意, 这里我好奇查看了一下,发现pip3和pip3.10文件内容完全一致。 都是使用了/usr/local/python3/bin/python3.10作为解释器。
准备建立软连接,以便我们敲python命令和pip命令,能准确的使用刚装的python3.10。
用find命令,分别查找一下python和pip。 发现系统/usr/local/bin/ 和/usr/bin/下都没有python,但是在/usr/bin/下存在pip:
我们把原来的pip挪走(重命名)
mv /usr/bin/pip /usr/bin/pip.bak
建立软连接,让python和pip命令能指向我们新的python3.10,并且在全局生效:
ln -s /usr/local/python3/bin/python3.10 /usr/local/bin/python
ln -s /usr/local/python3/bin/pip3.10 /usr/bin/pip
注意,这里是把pip放到了/usr/bin里,以替换原来的pip
ok,都可以了~