社区所有版块导航
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
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

是时候停止使用 Python 3.7 了

马哥Linux运维 • 1 年前 • 125 次点击  


升级到新的python版本是一种工作,但这种工作不一定会让你的软件用户受益, 因为用户关心的是功能和错误修复,而不是你的更新程度。

所以,仍有许多人使用 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 的支持:

现在是从 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。

链接:https://pythonspeed.com/articles/stop-using-python-3.7/

(版权归原作者所有,侵删)



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/154087
 
125 次点击