温馨提示×

CentOS里Python安装步骤详解

小樊
40
2025-11-22 03:44:23
栏目: 编程语言

CentOS 上安装与管理 Python 的完整步骤

一 前置准备与版本选择

  • 检查现有版本:运行命令查看系统自带的 Python 2.7/3.x 情况,避免后续误操作。
    • 命令:python --versionpython3 --version
  • 基本原则:不要删除或覆盖系统自带的 Python 2.7(CentOS 6/7 的 yum 等核心工具依赖它)。新增的 Python 3.x 采用并行安装,使用明确的命令如 python3/pip3 调用,或通过工具(alternatives/软链/pyenv)进行管理。
  • 版本选择建议:
    • 追求稳定与省心:优先用 YUM 安装仓库提供的版本(版本可能较旧)。
    • 需要新版本或自定义编译选项:选择 源码编译安装(如 3.11/3.12)。
    • 多项目多版本并存:使用 pyenv 进行用户级多版本管理。

二 方法一 YUM 安装稳定版(适合快速上手)

  • 安装 EPEL 仓库(如系统未启用):sudo yum install epel-release -y
  • 安装 Python 3(以 3.8 为例,具体可用版本取决于仓库):
    • 安装 IUS 仓库(CentOS 7 常用):sudo yum install https://repo.ius.io/ius-release-el7.rpm -y
    • 安装 Python 与 pip:sudo yum install python38 python38-pip -y
  • 验证:python3.8 --versionpip3.8 --version
  • 说明:不同系统版本仓库提供的 Python 3 次版本不同,若需特定版本可结合 IUS 或 SCL 源选择;此方法路径规范、维护成本低,适合生产稳定场景。

三 方法二 源码编译安装指定版本(适合 3.10+ 与新特性)

  • 安装编译依赖与工具:
    • sudo yum groupinstall "Development Tools" -y
    • sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel wget
  • 下载并解压源码(示例为 3.11.0,可按需替换版本号):
    • wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz
    • tar -xf Python-3.11.0.tgz && cd Python-3.11.0
  • 配置与编译(推荐开启优化并指定安装前缀,避免覆盖系统 Python):
    • ./configure --prefix=/usr/local/python3.11 --enable-optimizations
    • 编译加速:make -j "$(nproc)"
    • 安全安装:sudo make altinstall
  • 验证:python3.11 --version
  • 补充:若系统 OpenSSL 版本较旧导致 SSL 模块构建失败,可安装 openssl11 并在 configure 前导出编译/链接参数:
    • sudo yum install -y openssl11 openssl11-devel
    • export CFLAGS=$(pkg-config --cflags openssl11)
    • export LDFLAGS=$(pkg-config --libs openssl11)
    • 再执行 ./configure ... 与后续步骤。

四 方法三 使用 pyenv 管理多版本(适合开发与多项目)

  • 安装 pyenv(用户级安装,不污染系统):
    • 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
    • source ~/.bashrc
  • 安装与切换版本:
    • 安装:pyenv install 3.9.9
    • 全局默认:pyenv global 3.9.9
    • 项目本地:cd <项目目录> && pyenv local 3.9.9
  • 验证:python --versionpip --version
  • 说明:pyenv 将所有版本安装在用户目录,切换灵活,适合同时维护多个项目的不同 Python 版本。

五 安装后配置与常见问题处理

  • 设置默认版本(可选,谨慎操作):
    • 使用 alternatives(推荐,可回退):
      • sudo alternatives --install /usr/bin/python python /usr/local/bin/python3.11 2
      • sudo alternatives --config python(交互选择默认版本)
    • 或使用软链(简单但不易回退):
      • sudo ln -sf /usr/local/bin/python3.11 /usr/bin/python3
      • sudo ln -sf /usr/local/bin/pip3.11 /usr/bin/pip3
  • 安装或修复 pip:
    • 若未自带 pip:curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    • 安装:sudo python3.11 get-pip.py
  • 虚拟环境与依赖隔离:
    • 创建:python3.11 -m venv venv
    • 激活:source venv/bin/activate
    • 退出:deactivate
  • 常见问题速解:
    • 构建时报错 “Could not build the ssl module!”:安装 OpenSSL 1.1.1+(如 openssl11 及开发包),并在 configure 前导出 CFLAGS/LDFLAGS 指向新 OpenSSL,再重新编译。
    • 修改默认 Python 后 yum 异常:不要替换系统 /usr/bin/python;如需切换默认解释器,请使用 alternatives 或仅调整 python3/pip3 的软链,保留系统 python 指向 2.7
    • 多版本并存与调用错版本:使用 python3.x/pip3.x 明确调用,或用 pyenv 在项目目录设置本地版本,脚本 Shebang 写为 #!/usr/bin/env python3
    • 权限问题:安装系统级包用 sudo;在虚拟环境内无需 sudo 安装项目依赖,避免污染全局环境。

0