Ubuntu/CentOS怎么通过命令行安装Python 3.7
详细介绍在Ubuntu与CentOS两大Linux发行版中,如何通过命令行安全规范地安装Python 3.7。涵盖Ubuntu基于PPA源的快速配置、CentOS源码编译与SCL安装实践、系统关键依赖防护、验证方法及多版本隔离方案。
一、技术选型与核心路径对比
在Linux系统中,系统自带的Python环境往往与包管理器(如Ubuntu的apt、CentOS的yum)深度绑定。直接替换系统默认解释器(如修改 /usr/bin/python 指向)极易导致系统级管理工具失效。因此,安装Python 3.7的核心原则是独立并行共存。
针对两大系统家族,推荐的命令行安装路径如下:
- Ubuntu环境:首选官方社区维护的
deadsnakes PPA仓库。该方案通过预编译二进制包直接分发,安装迅速,能够自动解析大部分动态链接依赖。 - CentOS环境:CentOS 7官方源已不再收录较新的通用构建,推荐通过官方源码编译安装(make altinstall),该方式具备极高的通用性和环境隔离度;对于CentOS 7也可选用SCL(Software Collections)安装专有独立包。
二、Ubuntu 命令行安装 Python 3.7 (APT 与 PPA)
在 Ubuntu 系统上,官方默认软件仓库因版本演进可能已将 Python 3.7 移出主流索引。社区中最稳定、最常用的方式是使用由 Ubuntu 核心团队成员维护的 deadsnakes PPA。
步骤 1:更新本地包索引并安装 PPA 工具支持
在终端中执行以下命令,确保系统基础工具完备并能够添加第三方软件仓库:
sudo apt update
sudo apt install -y software-properties-common
步骤 2:添加 deadsnakes PPA 软件源
执行命令导入软件源。该操作会自动下载并信任仓库的 GPG 密钥:
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt update
步骤 3:安装 Python 3.7 及其核心开发组件
在安装核心包的同时,强烈建议一并安装 python3.7-dev(提供编译扩展所需的头文件)以及 python3.7-venv(提供虚拟环境管理支持):
sudo apt install -y python3.7 python3.7-dev python3.7-venv
步骤 4:验证解释器版本
安装完成后,直接调用 python3.7 检查输出结果:
python3.7 --version
三、CentOS 命令行安装 Python 3.7 (源码编译实战)
CentOS 系统(尤其是广受使用的 CentOS 7 与 CentOS 8)通常默认预装 Python 2.7 或 Python 3.6,且系统的包管理器依赖该解释器。在 CentOS 上安装 Python 3.7 最稳妥、最透明的方法是从官方源码编译并使用 altinstall 规避覆盖。
步骤 1:安装底层开发工具包与核心依赖库
Python 编译过程依赖 C 语言编译器(GCC)以及特定扩展模块的底层头文件(如用于处理 HTTPS 请求的 OpenSSL、用于支持 _ctypes 模块的 libffi 等)。缺失这些库会导致安装后部分常用模块报错。
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel wget make
步骤 2:下载并解压 Python 3.7 官方源码包
从 Python 官方 FTP 镜像服务器下载 3.7 的稳定子版本(以 3.7.17 为例):
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tgz
sudo tar -xzf Python-3.7.17.tgz
cd Python-3.7.17
步骤 3:配置编译选项并执行优化编译
运行 configure 脚本检测环境。加入 --enable-optimizations 选项可以开启 PGO(基于性能分析的优化)和 LTO,让 Python 运行速度提升约 10%:
sudo ./configure --enable-optimizations --prefix=/usr/local
步骤 4:核心执行——使用 altinstall 进行安全安装
切勿执行 make install!执行 make install 会直接创建名为 python3 和 python 的软链接,从而覆盖系统原有的 Python 路径,瞬间破坏 yum 等系统级运维组件。使用 make altinstall 只会生成带版本号的 python3.7 二进制。
# 启动多核心编译并安全安装
sudo make -j$(nproc)
sudo make altinstall
步骤 5:验证 CentOS 上的安装成果
安装完成后,二进制默认保存在 /usr/local/bin/python3.7:
/usr/local/bin/python3.7 --version
四、验证安装与环境隔离最佳实践
安装完成后,必须对执行文件路径、pip包管理器可用性进行核验,并掌握虚拟环境隔离的使用方法。
1. 路径与包管理工具核验
通过系统命令行依次检查可执行文件绝对路径及对应的包管理器:
# 检查可执行二进制路径
which python3.7
# 验证版本输出
python3.7 --version
# 验证配套 pip 是否就绪
python3.7 -m pip --version
如果输出中提示 No module named pip,可以通过 Python 内置的 ensurepip 模块一键补齐:
sudo python3.7 -m ensurepip --default-pip
sudo python3.7 -m pip install --upgrade pip
2. 使用 venv 创建专属隔离环境
在实际生产部署中,不建议直接向全局 site-packages 安装三方库。为具体业务创建基于 Python 3.7 的独立虚拟环境,不仅能隔离项目依赖,还能完全规避对系统其他组件的干扰:
# 进入工程目录
mkdir -p /opt/myproject && cd /opt/myproject
# 创建基于 Python 3.7 的独立虚拟环境
python3.7 -m venv venv37
# 激活虚拟环境
source venv37/bin/activate
# 激活后终端前缀将显示 (venv37),此时 python 与 pip 均指向该隔离环境
python -V
pip -V
五、常见问题排查与避坑指南
| 故障现象 / 报错信息 | 根本原因 | 命令行排查与修复方案 |
|---|---|---|
ModuleNotFoundError: No module named '_ctypes' |
编译时缺少外部函数接口核心库 libffi-devel。 |
在 CentOS 下执行 sudo yum install -y libffi-devel(Ubuntu 下为 sudo apt install -y libffi-dev),然后回到源码目录重新执行 make && sudo make altinstall。 |
pip is configured with locations that require TLS/SSL... |
编译环境未找到满足版本要求的 OpenSSL 头文件。 | 安装 openssl-devel 并在执行 ./configure 时通过 --with-openssl=/usr 明确声明 OpenSSL 安装路径,重新编译生成解释器。 |
执行 yum 报错 SyntaxError: invalid syntax |
误将 /usr/bin/python 指向了 Python 3。 |
查看 /usr/bin/yum 首行指定的解释器,恢复 /usr/bin/python 的软链接指向原生版本(例如指向 /usr/bin/python2.7)。 |
Ubuntu 添加 PPA 时提示 add-apt-repository: command not found |
系统精简安装导致缺少通用软件属性扩展。 | 执行 sudo apt update && sudo apt install -y software-properties-common 补齐管理命令。 |
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













