CentOS7默认自带了Python2.7版本,但是最好还是安装Python3.x。本文以Python3.7.5为例。


一、Python源代码编译安装

安装必要工具 yum-utils ,它的功能是管理repository及扩展包的工具 (主要是针对repository)

sudo yum install yum-utils


使用yum-builddep为Python3构建环境,安装缺失的软件依赖,使用下面的命令会自动处理.

sudo yum-builddep python


完成后下载Python3的源码包(使用华为镜像):

curl -O https://mirrors.huaweicloud.com/python/3.7.5/Python-3.7.5.tgz


最后一步,编译安装Python3,默认的安装目录是 /usr/local 如果你要改成其他目录可以在编译(make)前使用 configure 命令后面追加参数 –prefix=/alternative/path 来完成修改。

tar xf Python-3.7.5.tgz
cd Python-3.7.5
./configure
make
sudo make install


至此你已经在你的CentOS系统中成功安装了python3、pip3、setuptools,查看python版本

python3 -V   # 注意不是Python -V




二、将Python3作为默认版本

如果要使用Python3作为默认版本,即直接输入Python -V或者python就可以有版本信息输出,还需要配置一个文件。


首先查看python3的位置

which python3  
# 我这里返回的是:/usr/local/bin/python3 (这一部分要添加到下面的配置文件,路径不要错)


然后配置文件

vi ~/.bash_profile


写入

PATH="/usr/local/bin:${PATH}"
export PATH
alias python="/usr/local/bin/python3"

按照vim格式保存退出,然后更新

source ~/.bash_profile


输入python -V验证

[root@iZuf63v13g2lh7q8443kxnZ statistics]# python -V
Python 3.7.5

输入python验证

[root@iZuf63v13g2lh7q8443kxnZ statistics]# python
Python 3.7.5 (default, Apr 20 2023, 20:12:13)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>


其实还可以继续配置全局的etc/profile文件

vi /etc/profile

写入

export PYTHON_HOME=/usr/local/bin/python3

按照vim格式保存退出,然后更新

source ~/.bash_profile


完成




关于pip报错

pip install --upgrade pip

使用上述命令后仍然报错egg_info

img

并且报错原因几乎一样,尝试以下命令,仍以失败告终:

pip install --upgrade --force pip


问题解决

首先,卸载pip:

sudo apt-get remove python-pip   # ubuntu
sudo yum remove python-pip # centos

卸载后,我们前往官网下载我们需要的版本(速度很快),在这里我推荐 20.3.3,因为我在尝试安装22.2.2时,遇到了问题。进入上面的链接,我们选择下载 pip-20.3.3.tar.gz


下载下来后,进入文件所在的目录,进行解压:

sudo tar -zxvf pip-20.3.3.tar.gz


进入解压后的目录,进行安装:

cd /pip-20.3.3
sudo python setup.py install

而后继续使用pip install将不会再出错。如果还是不行就用pip3 install




【pip】解决egg_info报错问题&升级pip - 知乎 (zhihu.com)

CentOS 安装 Python3.7 - 知乎 (zhihu.com)