温馨提示×

CentOS下Python如何顺利安装

小樊
47
2025-11-22 03:41:24
栏目: 编程语言

CentOS 下 Python 顺利安装与多版本管理

一 安装前的关键原则

  • 不要删除或覆盖系统自带的 Python 2.7(CentOS 6/7)或系统自带的 Python 3(CentOS 8),因为 yum/dnf 等系统工具强依赖它。所有自定义 Python 3.x 都应并行安装,通过明确的命令如 python3/pip3 调用,避免与系统 Python 冲突。若必须切换默认解释器,请使用 update-alternatives 或版本管理工具,而不是直接替换 /usr/bin/python。对于需要 Python 3.10+ 的场景,系统仓库版本往往偏旧,建议使用源码编译或 pyenv 安装。

二 三种稳妥的安装方式

  • 方式一 使用 yum 快速安装(省心稳定)
    • 更新并安装:
      • sudo yum update -y
      • sudo yum install -y python3 python3-pip
    • 验证:
      • python3 --version
      • pip3 --version
    • 说明:版本取决于仓库,适合快速上手与运维场景。
  • 方式二 源码编译安装(指定版本与优化)
    • 安装依赖:
      • sudo yum groupinstall -y “Development Tools”
      • sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel wget
    • 下载与编译(示例为 3.11.x,可按需替换版本号):
      • wget https://www.python.org/ftp/python/3.11.x/Python-3.11.x.tgz
      • tar xzf Python-3.11.x.tgz && cd Python-3.11.x
      • ./configure --enable-optimizations
      • make -j “$(nproc)”
      • sudo make altinstall
    • 验证与软链:
      • python3.11 --version
      • sudo ln -s /usr/local/bin/python3.11 /usr/bin/python3.11
      • sudo ln -s /usr/local/bin/pip3.11 /usr/bin/pip3.11
    • 说明:使用 make altinstall 避免覆盖系统默认 python;如需自定义前缀,可用 –prefix 指定安装目录。
  • 方式三 使用 pyenv 管理多版本(开发推荐)
    • 安装依赖与 pyenv:
      • sudo yum install -y git gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
      • curl https://pyenv.run | bash
    • 配置环境(写入 ~/.bashrc~/.bash_profile):
      • echo ‘export PATH=“$HOME/.pyenv/bin:$PATH”’ >> ~/.bashrc
      • echo ‘eval “$(pyenv init --path)”’ >> ~/.bashrc
      • echo ‘eval “$(pyenv init -)”’ >> ~/.bashrc
      • echo ‘eval “$(pyenv virtualenv-init -)”’ >> ~/.bashrc
      • source ~/.bashrc
    • 安装与切换版本:
      • pyenv install 3.10.12
      • pyenv global 3.10.12
      • python --version
    • 说明:多版本并行、项目级切换,不污染系统环境。

三 多版本共存与切换

  • 使用 update-alternatives(系统级切换)
    • 注册候选版本:
      • sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
      • sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2
    • 交互选择默认版本:
      • sudo update-alternatives --config python
    • 说明:切换前确认 yum/dnf 仍可用,避免误改系统依赖。
  • 使用 pyenv(用户级切换)
    • 全局与局部切换:
      • pyenv global 3.10.12
      • pyenv local 3.9.18
      • pyenv shell 3.8.18
    • 说明:进入项目目录自动使用 .python-version 指定的版本,便于多项目并行。

四 虚拟环境与依赖管理

  • 使用 venv(推荐)
    • 安装与创建:
      • sudo yum install -y python3-venv
      • python3 -m venv venv
      • source venv/bin/activate
    • 常用操作:
      • pip install -U pip
      • pip install -r requirements.txt
      • deactivate
    • 说明:隔离项目依赖,避免版本冲突。
  • 使用 conda(数据科学场景)
    • 安装与创建环境:
      • 下载安装脚本并执行:bash Anaconda3-*.sh
      • conda create -n py310 python=3.10
      • conda activate py310
    • 说明:适合需要 conda 生态与二进制包的场景。

五 常见问题与排查

  • 运行脚本调用错版本
    • 使用 shebang 指定解释器路径:
      • 在脚本首行写入:#!/usr/bin/env python3
      • 或写入 which python3 的实际路径(如 /usr/bin/python3.11
    • 运行方式:python3 script.py 或赋予执行权限后用 ./script.py
  • pip 装到了错误版本或报 SSL 错误
    • 确认 pip 对应版本:python3 -m pip --version
    • 升级 pip:python3 -m pip install -U pip
    • SSL 问题多因编译时缺少 openssl-devel,重新编译前安装依赖再 make。
  • 误改系统默认 Python 导致 yum 不可用
    • 恢复默认:sudo update-alternatives --config python,选择系统自带 python2.7python3(仓库版)
    • 原则:不要替换 /usr/bin/python,使用 python3/pip3 或版本管理工具。

0