跳到主要内容 在 CentOS 上安装 Python 3.12 | 极客日志
Python
在 CentOS 上安装 Python 3.12 本文介绍了在 CentOS 系统上手动编译安装 Python 3.12 的完整流程。首先更新系统并安装 gcc、openssl 等编译依赖,随后从官方或镜像源下载源码包。接着解压源码,通过 configure 指定安装路径以避免覆盖系统默认版本,并使用 make 进行编译和安装。最后创建软链接将新安装的 Python 和 pip 加入环境变量,验证版本后即可正常开发使用。
在 CentOS 上安装 Python 3.12
对于 CentOS 用户来说,系统默认的 Python 版本往往跟不上开发需求——比如 CentOS 7 默认 Python 2.7,CentOS 8 也仅搭载 Python 3.6,而 Python 3.12 带来的函数调用性能提升、类型提示增强等特性,早已成为不少开发者的刚需。
一、安装前准备:先搞定依赖环境
编译 Python 源代码前,必须先安装系统依赖包——少装一个都可能导致后续步骤报错。打开 CentOS 终端,按顺序执行以下命令即可。
1.1 先更新系统软件包
首先把系统已有的软件包更新到最新版本,避免因版本兼容问题卡壳:
sudo yum update -y
-y参数会自动确认所有更新操作,不用手动按回车,等终端显示'Complete!'就说明更新完成。
1.2 安装编译必需的依赖库 这条命令能一次性装全编译 Python 需要的工具和依赖,直接复制执行:
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget
gcc:核心编译器,没有它无法将 Python 源代码编译成可执行程序;
openssl-devel:支持 Python 的 HTTPS/SSL 功能,比如用 pip 装包、请求 HTTPS 接口都靠它;
libffi-devel:让 Python 能调用 C 语言编写的库(比如一些高性能第三方包);
wget:后续用来下载 Python 源代码包的工具。
二、下载 Python 3.12 源代码 推荐从 Python 官方源或国内镜像源下载,国内镜像速度更快,这里两种方式都给大家列出来。
2.1 切换到源代码存放目录 Linux 系统习惯把源代码放在 /usr/local/src 目录(权限清晰,方便管理),先切换到这个目录:
2.2 下载 Python 3.12 源码包 目前 Python 3.12 的最新稳定版是 3.12.4(2024 年 6 月发布),如果后续有更新,把命令中的 3.12.4 换成最新版本号即可。
方式 1:国内镜像源(推荐,速度快) wget https: //mirrors.tuna.tsinghua.edu.cn/python /3.12.4/ Python -3.12 .4 .tgz
方式 2:Python 官方源 wget https: //www.python.org/ftp /python/ 3.12 .4 /Python -3.12 .4 .tgz
下载完成后,执行 ls 命令,能看到目录里多了一个 Python-3.12.4.tgz 的压缩包,就说明下载成功了。
三、核心步骤:编译与安装 Python 3.12 这一步是关键,必须按'解压→配置→编译→安装'的顺序执行,不要跳步。
3.1 解压源代码包 sudo tar -zxvf Python-3.12.4.tgz
z:处理 gz 格式压缩包;
x:开启解压模式;
v:显示解压过程(能看到正在解压的文件);
f:指定要解压的文件名。
解压完成后,当前目录会出现一个 Python-3.12.4 的文件夹,里面就是 Python 3.12 的源代码。
3.2 配置安装路径与功能 然后执行 configure 命令,重点是指定安装路径——这样能避免和系统默认 Python 版本冲突:
sudo ./configure --enable-optimizations --prefix=/usr/local/python3.12 --with-openssl=/usr/include/openssl
--enable-optimizations:可以优化 Python 解释器的性能,但会增加编译时间;
--prefix=/usr/local/python3.12:把 Python 3.12 安装到这个目录,后续卸载或管理都方便;
--with-openssl=/usr/include/openssl:指定 SSL 依赖路径,解决后续 pip 无法使用 HTTPS 的问题。
配置过程大概 10 秒左右,只要终端没出现'error:'开头的红色报错,就说明配置成功。
3.3 编译与安装 先执行编译命令,-j2 表示用 2 个 CPU 核心编译(如果服务器是 4 核,可改成 -j4,速度更快):
编译需要 1-3 分钟(取决于服务器配置),中间别中断,等终端回到命令行提示符就说明编译完成。
使用 make altinstall 可以避免覆盖系统默认的 Python 版本。安装很快,几十秒就能完成。如果终端最后显示'Successfully installed pip-xx.x.x',就说明 Python 3.12 已经成功安装到 /usr/local/python312 目录了!
四、配置环境:让系统识别 Python 3.12 装完后还不能直接用 python 命令调用——需要创建'软链接'(类似 Windows 的快捷方式),把 Python 3.12 的命令加入系统默认路径。
4.1 创建软链接(推荐新手) 执行以下两条命令,分别给 Python 3.12 和对应的 pip 创建软链接:
sudo ln -s /usr/local/python3.12/bin/python3.12 /usr/bin/python3.12
sudo ln -s /usr/local/python3.12/bin/pip3.12 /usr/bin/pip3.12
用 python3.12 和 pip3.12 作为命令名,是为了和系统自带的 python/python3 区分开,避免误删或冲突。
4.2 验证安装结果 如果输出 Python 3.12.4(或你安装的版本号),说明 Python 3.12 能正常调用。
输出类似 pip 24.0 from /usr/local/python312/lib/python3.12/site-packages/pip (python 3.12),就说明 pip 也配置好了。
五、避坑指南:常见问题解决 操作中遇到报错别慌,这几个高频问题的解决方法帮你省下查资料的时间。
问题 1:编译时提示'no acceptable C compiler found in $PATH' 原因 :没安装 gcc 编译器,依赖安装步骤漏了。
解决 :重新安装 gcc:
问题 2:执行 python3.12 提示'command not found' 原因 :软链接创建失败,可能是路径写错了。
解决 :先检查软链接是否存在:
ls -l /usr/bin/python3.12
如果显示'No such file or directory',重新执行创建软链接的命令,注意路径中的 Python-3.12.4 和 python3.12 别写错。
问题 3:用 pip3.12 装包时提示'SSL: CERTIFICATE_VERIFY_FAILED' 原因 :安装时没正确配置 SSL 依赖,或 openssl-devel 没装。
解决 :先确认依赖已安装:
sudo yum install -y openssl-devel
然后回到源代码目录,重新执行'配置→编译→安装':
cd /usr/local/src/Python-3.12.4
sudo make clean
sudo ./configure --prefix=/usr/local/python3.12 --with-openssl=/usr/include/openssl
sudo make -j2
sudo make install
六、上手测试:简单用一下 Python 3.12 安装完成后,不妨在终端测试一下:输入 python3.12 进入交互模式,然后输入:
print ("Hello, Python 3.12!" )
按回车后能正常输出文字,就说明一切正常。想退出交互模式,按 Ctrl+D 即可。
后续使用时,运行 Python 脚本用 python3.12 脚本名.py,安装第三方包用 pip3.12 install 包名(比如 pip3.12 install requests),和平时用 Python 没区别。
微信扫一扫,关注极客日志 微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具 curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown 转 HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
HTML 转 Markdown 将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
JSON 压缩 通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online