当前位置: 首页 > news >正文

Python学习之路(7)— 在CentOS上安装Python 3.12

Python学习之路(7)— 在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目录(权限清晰,方便管理),先切换到这个目录:

cd /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 解压源代码包

tar命令解压刚才下载的压缩包,命令如下:

sudo tar -zxvf Python-3.12.4.tgz
  • z:处理gz格式压缩包;
  • x:开启解压模式;
  • v:显示解压过程(能看到正在解压的文件);
  • f:指定要解压的文件名。

解压完成后,当前目录会出现一个Python-3.12.4的文件夹,里面就是Python 3.12的源代码。

3.2 配置安装路径与功能

先进入解压后的源代码目录:

cd Python-3.12.4

然后执行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,速度更快):

sudo make -j2

编译需要1-3分钟(取决于服务器配置),中间别中断,等终端回到命令行提示符就说明编译完成。

接着执行安装命令:

sudo make altinstall

使用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创建软链接:

# 给Python 3.12创建软链接,命令名为python312
sudo ln -s /usr/local/python3.12/bin/python3.12 /usr/bin/python3.12# 给pip创建软链接,命令名为pip312
sudo ln -s /usr/local/python3.12/bin/pip3.12 /usr/bin/pip3.12

python3.12pip3.12作为命令名,是为了和系统自带的python/python3区分开,避免误删或冲突。

4.2 验证安装结果

执行以下命令检查Python 3.12版本:

python3.12 --version

如果输出Python 3.12.4(或你安装的版本号),说明Python 3.12能正常调用。

再检查pip是否可用:

pip3.12 --version

输出类似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

sudo yum install -y gcc

问题2:执行python3.12提示“command not found”

原因:软链接创建失败,可能是路径写错了。
解决:先检查软链接是否存在:

ls -l /usr/bin/python3.12

如果显示“No such file or directory”,重新执行创建软链接的命令,注意路径中的Python-3.12.4python3.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没区别。

http://www.dtcms.com/a/474257.html

相关文章:

  • AT指令解析:TencentOS Tiny AT指令解析源码分析2-数据类型定义
  • 网站做三个月收录100管理系统中计算机应用
  • 【深度长文】AI+游戏方向调研报告
  • 百度网址大全网站手机网站改版了
  • wordpress外链包装中国临沂网站优化
  • 静态类型系统在前后端联调中的价值验证
  • 网站备案 怎么建站注册高级工程师
  • Linux:应用层协议HTTP
  • .Net Core上传组件7.2
  • 网站建设公司哪家好 在线磐石网络什么网站做学校设计
  • 模电基础:放大电路的频率响应(2)
  • 【力扣】hot100系列(三)贪心(多解法+时间复杂度分析)
  • 科讯网站模版网如何把自己的网站推广出去
  • 阿里云存储服务OSS对象存储的简单使用
  • P5522 yLOI2019 棠梨煎雪
  • 建站专家wordpress 获取当前路径
  • 天津网站推广如何做一款app需要多少钱
  • 服务器放网站吗高端保姆
  • H7-TOOL RTOS Trace功能的RTX5检测增加最大任务栈使用情况检测,不需要目标板额外做任何代码实时监测
  • android usb摄像头无法缩放问题
  • 高安版_中兴B860AV3.2M_晶晨S905L3B_安卓9_兼容uwe5621ds无线-线刷固件包
  • 北京手机网站开发费用用系统建购物网站
  • linux中tee解析
  • 媒体的分类层次
  • Get请求和Post请求区别
  • 搭建网站商城医院网站推广渠道
  • 从零复现论文(2)——:基于启发式优化的无线传感器网络WSN功率分配策略
  • 【Swift】LeetCode 283. 移动零
  • 【Java数据结构】冒泡排序编码关键细节与避坑指南
  • DPDK中的BitMap测试