社区
教程
Wiki
注册
登录
创作新主题
社区所有版块导航
Python
python开源
Django
Python
DjangoApp
pycharm
DATA
docker
Elasticsearch
分享
问与答
闲聊
招聘
翻译
创业
分享发现
分享创造
求职
区块链
支付之战
aigc
aigc
chatgpt
WEB开发
linux
MongoDB
Redis
DATABASE
NGINX
其他Web框架
web工具
zookeeper
tornado
NoSql
Bootstrap
js
peewee
Git
bottle
IE
MQ
Jquery
机器学习
机器学习算法
Python88.com
反馈
公告
社区推广
产品
短视频
印度
印度
一周十大热门主题
Cursor创始团队最新访谈:如果Github整合o1,Cursor可能要倒闭了
【漏洞通告】GitLab权限绕过漏洞(CVE-2024-9164)
MySQL 8.2 支持读写分离!
诺贝尔文学奖要颁给ChatGPT?奥特曼得奖呼声高,Hinton怒斥:他不配!
2024必看AI干货!《大模型/AIGC/GPT-4/Transformer/DL/KG/NLP/C...
开源软件Gradio上新5大功能,几行Python代码,构建Web应用程序
360万元,OpenCSG击败(浪潮云、Gitee)中标大模型项目
融资5亿美元,GitHub前CTO要以软件开发为切入口打造AGI|AlphaFounders
AIGC从入门到实战:ChatGPT 需要懂得写提示词的人
Python正式发布年度大更新3.13.0:实验性支持no-GIL、性能起飞!
关注
Py学习
»
Python
Python3.8即将结束生命周期
机器学习算法那些事
• 1 周前 • 40 次点击
升级到新的软件版本本身是一项工作,而且对软件用户没有好处,因为用户关心功能和错误修复,而不是版本的最新程度。
因此,有很多人人仍在使用 Python 3.8 可能并不奇怪,截至 2024 年 9 月,从 PyPI 下载的软件包中约有 14% 适用于 Python 3.8,这包括作为 CI 运行一部分的自动下载,因此这并不意味着 14% 的应用程序使用了 3.8,但这仍然是一天内安装了 2.5 亿个软件包!
虽然如此,但我们可以延迟升级的时间有限,对于 Python 3.8,升级的时间是越快越好,因为Python 3.8 将于 2024 年 10 月底结束其生命周期,到期后会将:
没有更多的错误修复。
不再有安全修复程序。
接下来让我们看看我们为什么要升级。
生命周期结束是什么意思?
Python 3.8 于 2019 年 10 月发布,距今已有五年时间。正如你在 PEP 569 中看到的:
在前两年,错误修复和安全修复子版本每 2 个月发布一次。
在此之后,仅根据需要进行安全修复。
发布将在 3.8 发布 5 年后停止。
也就是说,2024 年 10 月是 Python 3.8 版本发布的最后一个月,
从 2024 年 10 月开始,如果存在安全错误,Python 开发团队将不会修复该错误。
现在对安全修复的需求是比较强烈的,因为3.8.10 之后的所有版本都是由于安全修复而产生的,在撰写本文时,最新版本 Python 3.8.20 于 2024 年 9 月 6 日发布,其中包含 14 个不同的安全修复程序
“我不需要升级,我使用的是长期支持的 Linux!
”
某些 Linux 发行版保证在已知时间段内提供长期支持,包括安全错误修复,如果你使用的是其中一个发行版,并且它包含 Python 3.8,那么即使 Python 开发团队不提供,你也可以依赖该发行版来提供安全修复程序。
所以从理论上讲,你还不需要升级,但在实践中,有一些注意事项。
第一是Linux 发行版只会做这么多,而且也不是永远支持
Linux 发行版不会向后移植所有安全修复程序,只向后移植那些最重要的安全修复程序,例如,Python 3.8.19 中的一些安全修复程序从未进入 Ubuntu 软件包中。
当然,长期支持仅在有限的时间内持续,例如,Ubuntu 20.04(包含 Python 3.8 的版本)将于 2025 年 4 月结束常规安全更新,之后,将能够获得个人使用的安全更新,但对于大规模商业用途,就需要向 Ubuntu 付费。
第二个问题是你的依赖包将停止获取更新
第三方 Python 库和框架已经开始放弃对 Python 3.8 的支持,这意味着,如果这些库存在严重错误,则修复程序可能在 Python 3.8 上不可用,并且你的 Linux 发行版在很大程度上不会为每个存在的 Python 库进行向后移植。
软件包
最新版本支持 3.8?
支持 3.8 的最新版本
NumPy
不
2022 年 12 月
Pandas
不
2023 年 6 月
Django 5.x 版本
不
从不支持
现在是时候从 3.8 升级了
在短期内,最低目标是切换到维护可用依赖项版本的Python版本,例如,如果你依赖 Pandas,正如我们所看到的,上一个兼容 3.9 的版本是在 2023 年 6 月,所以你至少要使用 Python 3.9。
比较好的是,Python 3 版本相当向后兼容,所以你可以这么做:
升级到 3.9。
修复发现的任何错误。
升级到 3.10,修复所有错误。
重复直到 Python 3.12 甚至 3.13。
其它潜在的更大问题
升级需求不是一次性事件,而是持续需求:
Ubuntu 20.04 将于 2025 年 4 月停止获取免费安全更新。
Python 3.9 将于 2025 年 10 月停止获取安全更新。
Django 5.2 将于 2026 年 4 月停止获取安全更新。
等等。
从新版本的相反角度来看:
Python 3.9 于 2020 年 10 月发布。
Python 3.10 于 2021 年 10 月发布。
Python 3.11 于 2022 年 10 月发布。
Python 3.12 于 2023 年 10 月发布。
如果你在2024 年仍在使用 Python 3.8,说明你们可能因为有其他更重要的升级或是遇到组织问题,所以一直在推迟,下一步建议应该设置一个持续的流程来定期更新版本和依赖了。
来源
:
https://pythonspeed.com/articles/stop-using-python-3.8
Python社区是高质量的Python/Django开发社区
本文地址:
http://www.python88.com/topic/174605
40 次点击
登录后回复