【Python】讨论:是时候停止使用 Python 3.7 了
来源:https://pythonspeed.com/articles/stop-using-python-3.7/
所以,仍有许多人使用 Python 3.7 并不奇怪, 截至 2022 年 12 月,从 PyPI 下载的包中有近 30% 是针对 Python 3.7 的, 这包括作为 CI 运行一部分的自动下载,所以这并不意味着 30% 的应用程序使用 3.7,但这仍然是很多人使用旧版本 Python 的原因。
不过,你可以延迟升级的时间有限,对于 Python 3.7,升级时间是在接下来的几个月内, Python 3.7 将于 2023 年 6 月到期,到期后不再修复错误,也没有安全修复。
Python 3.7 于 2018 年 6 月发布。正如你在 PEP 537 中所见:
错误修复和安全修复子版本在前两年每 3 个月发布一次。
之后,仅根据需要发布安全修复程序。
3.7 发布后 5 年将停止发布。
也就是说,2023 年 6 月是发布 Python 3.7 的最后一个月, 从 2023 年 7 月开始,如果存在安全漏洞,Python 开发团队将不再修复。
对安全修复的需求是真实的:3.7.9 之后的所有版本都是由于安全修复。撰写本文时的最新版本 Python 3.7.16 已于 2022 年 12 月 6 日发布,其中包含 5 个不同的安全修复程序,从潜在的拒绝服务攻击到缓冲区溢出。
一些 Linux 发行版保证在已知时间段内提供长期支持,包括安全错误修复, 如果你使用的是这些发行版之一,并且它包含 Python 3.7,那么你可以依赖该发行版来提供安全修复,即使 Python 开发团队不会这样做。
所以理论上,你还不需要升级, 但在实践中,有一些警告。
大多数发行版中不包含 Python 3.7
RedHat 和克隆版不在任何版本中包含 Python 3.7。
Ubuntu 18.04 确实有 Python 3.7 作为附加组件,但它是 universe 附加组件包的一部分,因此尚不清楚安全支持会有多好;据推测,universe 包安全更新依赖于社区更新, 最后一次安全更新是在 2021 年 12 月,较新的 LTS Ubuntu 版本(20.04、22.04)不包括 Python 3.7。
Debian 10(“Buster”)包括 Python 3.7,但 Debian 11 不包括。
Linux 发行版不会向后移植所有安全修复程序,只会向后移植那些最重要的:
即使是现在,当 Python 维护者自己提供错误修复时,Python 3.7.16 也有许多安全修复没有包含在 Debian 维护的版本中。
Ubuntu 上一次针对 Python 3.7 的安全更新是在 2021 年 12 月,尽管此后已经进行了多次安全更新。
当然,长期支持只会持续有限的时间:
Debian Buster 将于 2024 年 6 月结束其自身的安全更新,因此这只会让你多花一年时间。
Ubuntu 18.04 将于 2023 年 4 月结束标准安全更新;之后,你需要付费才能获得安全更新。
你的依赖项将停止获取更新
一旦 6 月到来,第三方 Python 库和框架将开始放弃对 Python 3.7 的支持, 这意味着如果这些库有一个严重的错误,修复程序可能无法在 Python 3.7 上使用,并且你的 Linux 发行版不会为每个现有的 Python 库做反向移植。
事实上,一些库和框架已经开始放弃对 Python 3.7 的支持:
Package | Latest version supports 3.7? | Last release supporting 3.7 |
---|---|---|
NumPy | No | April 2022 |
Pandas | No | December 2021 |
Django 4.x | No | Never supported |
Django 3.2 LTS 仍然支持 Python 3.7,并将在 2024 年 4 月结束自己的安全更新。
现在是从 3.7 升级的时候了在短期内,你的最低目标是切换到一个 Python 版本,该版本维护了可用的依赖项版本。例如,如果你依赖 Pandas,正如我们所见,最后一个与 3.7 兼容的版本是在 2021 年 12 月发布的。因此,你至少希望使用 Python 3.8。
幸运的是,Python 3 版本相当向后兼容, 所以可以做的是:
升级到 3.8。
修复你发现的任何错误。
升级到 3.9,修复所有错误。
重复直到你使用 Python 3.10 或从 2023 年 1 月左右开始使用 Python 3.11。
(完)
往期精彩回顾
适合初学者入门人工智能的路线及资料下载 (图文+视频)机器学习入门系列下载 机器学习及深度学习笔记等资料打印 《统计学习方法》的代码复现专辑 机器学习交流qq群955171419,加入微信群请扫码