CentOS 7/8/9 一键安装 Python 3.10+ 并配置默认版本

第一步:准备工作 ------ 安装编译依赖

根据你的 CentOS 版本,选择执行以下命令之一:

  • 对于 CentOS 7 (使用 yum):

    bash 复制代码
    sudo yum groupinstall -y "Development Tools"
    sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel gdbm-devel xz-devel
  • 对于 CentOS 8 / 9 (使用 dnf):

    bash 复制代码
    sudo dnf groupinstall -y "Development Tools"
    sudo dnf install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel gdbm-devel xz-devel

小贴士: openssl-devel 至关重要,它确保了 Python 的 piprequests 等库能正常使用 HTTPS。libffi-devel 则是很多 C 扩展模块所必需的。

第二步:下载、编译并安装 Python 3.10+

我们将从 Python 官网下载最新稳定版的源码,并进行编译安装。这里以 Python 3.10.12 为例,你可以访问 Python 官网 获取最新的下载链接。

  1. 进入一个临时目录并下载源码:

    bash 复制代码
    cd /tmp
    wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
  2. 解压并进入源码目录:

    bash 复制代码
    tar -xf Python-3.10.12.tgz
    cd Python-3.10.12
  3. 配置编译选项(关键步骤):

    我们将 Python 安装到 /usr/local/python3.10 目录下,实现与系统 Python 的隔离。同时启用优化选项,提升运行性能。

    bash 复制代码
    ./configure --prefix=/usr/local/python3.10 --enable-optimizations --with-ssl
    • --prefix=...: 指定安装路径,这是一个好习惯。
    • --enable-optimizations: 启用性能优化,编译出的 Python 解释器会更快(推荐)。
    • --with-ssl: 确保编译时链接到系统的 SSL 库。
  4. 开始编译和安装:

    使用 -j 参数可以充分利用多核 CPU 加速编译过程。

    bash 复制代码
    # 使用 nproc 自动获取 CPU 核心数进行编译
    make -j$(nproc)
    
    # 使用 altinstall 安装,这是安全的关键!
    sudo make altinstall

    重点强调: 请务必使用 make altinstall 而非 make installaltinstall 会在安装时避免创建 pythonpython3 这样的覆盖性符号链接,从而保护系统的默认 Python 不被干扰。

第三步:配置系统默认 Python 和 pip(核心环节)

现在 Python 3.10 已经安装好了,但系统还"不认识"它。我们将使用 CentOS 强大的 alternatives 工具来管理版本,实现平滑切换。

  1. python3 命令注册新版本:

    bash 复制代码
    sudo alternatives --install /usr/bin/python3 python3 /usr/local/python3.10/bin/python3.10 1
    • --install: 注册一个新的可选项。
    • /usr/bin/python3: 通用链接的路径。
    • python3: 链接的家族名称。
    • /usr/local/python3.10/bin/python3.10: 我们新安装的 Python 的实际路径。
    • 1: 优先级,数字越大优先级越高。后续如果安装其他版本,可以设置更高的数字。
  2. 配置 python3 的默认版本:

    bash 复制代码
    sudo alternatives --config python3

    执行后,你会看到一个交互式菜单,列出所有已注册的 python3 版本。输入我们刚刚安装的 Python 3.10 对应的数字,然后回车即可。

    复制代码
    There are 2 programs which provide 'python3'.
    
      Selection    Command
    -----------------------------------------------
    *+ 1           /usr/bin/python3.6
       2           /usr/local/python3.10/bin/python3.10
    
    Enter to keep the current selection[+], or type selection number: 2
  3. pip3 命令重复以上操作:

    bash 复制代码
    sudo alternatives --install /usr/bin/pip3 pip3 /usr/local/python3.10/bin/pip3.10 1
    sudo alternatives --config pip3

    同样,在弹出的菜单中选择我们新安装的 pip3.10

  4. 创建无版本号的 pythonpip 软链接(可选但推荐):

    在现代开发中,python 通常指向 python3。我们可以创建一个软链接来简化命令。

    bash 复制代码
    sudo ln -sf /usr/bin/python3 /usr/bin/python
    sudo ln -sf /usr/bin/pip3 /usr/bin/pip

    这一步让 pythonpip 命令直接指向 alternatives 管理的 python3pip3,实现了统一。

第四步:验证安装成果

一切就绪!现在打开一个新的终端会话,验证我们的工作成果。

bash 复制代码
# 检查 Python 版本
python --version
python3 --version

# 预期输出都应该是:
# Python 3.10.12

# 检查 pip 版本
pip --version
pip3 --version

# 预期输出都应该是:
# pip 23.x.x from /usr/local/python3.10/lib/python3.10/site-packages/pip (python 3.10)

如果看到上述输出,恭喜你!你已经成功地在 CentOS 系统上安装并配置了 Python 3.10+,并且系统工具(如 yum/dnf)所依赖的旧版 Python 依然完好无损。

(可选)第五步:配置 pip 国内镜像源

为了提升 pip 安装包的速度,强烈建议配置国内镜像源。

  1. 创建 pip 配置目录:

    bash 复制代码
    mkdir -p ~/.pip
  2. 创建并编辑配置文件:

    bash 复制代码
    vi ~/.pip/pip.conf
  3. 在文件中填入以下内容(以清华大学镜像源为例):

    ini 复制代码
    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple
    
    [install]
    trusted-host = pypi.tuna.tsinghua.edu.cn

保存后,pip 的下载速度将得到质的飞跃。

相关推荐
小毛驴85015 小时前
软件设计模式-装饰器模式
python·设计模式·装饰器模式
闲人编程15 小时前
Python的导入系统:模块查找、加载和缓存机制
java·python·缓存·加载器·codecapsule·查找器
HIT_Weston15 小时前
39、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)
linux·前端·ubuntu
weixin_4577600015 小时前
Python 数据结构
数据结构·windows·python
合作小小程序员小小店16 小时前
web网页,在线%抖音,舆情,线性回归%分析系统demo,基于python+web+echart+nlp+线性回归,训练,数据库mysql
python·自然语言处理·回归·nlp·线性回归
q***25116 小时前
Python中的简单爬虫
爬虫·python·信息可视化
最晚的py16 小时前
Python Matplotlib
python·数据分析
柳鲲鹏16 小时前
OpenCV:文件视频防抖,python版
python·opencv·音视频
福尔摩斯张16 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法