2021年11月8月,微软发布了Visual Studio 2022正式版本,本次版本更新包括了针对编程语言、云服务、扩展性、热重载以及编辑器等等改进。12月7日,微软官方博客发布文章称,随着Visual Studio 2022的发布,Visual Studio对Python的支持方式也会发生变化。
之前,Visual Studio的每个版本都会针对特定的Python 版本。每个版本的 Visual Studio 都针对特定的 Python 版本。例如,Visual Studio 2019 的目标是 Python 3.7,而 Visual Studio 2022 的目标是 Python 3.9(Python 3.10 刚刚出来,但仍然有很多流行的包没有完全支持,所以 Python 3.9 是更好的选择)。
而Python 版本的生命周期与 Visual Studio 版本的生命周期大不相同。每年Python都会发布新版本,并且二进制安装程序在发布后的 18个月内可用于 Windows。这意味着 Python 3.9 的最后一个二进制安装程序更新将在 2022 年 3 月左右由 Python 软件基金会 (PSF) 提供,而早期版本根本不会获得安装程序更新。
而现在,Visual Studio 将会选择最新的广泛采用的 Python 版本。这意味着 Visual Studio 2022 在之后获得更新时,新版本可能会选择 Python 3.10、Python 3.11 或更新版本(取决于届时哪个版本会被广泛采用)。但是,Visual Studio 之前版本的Python工作负载不会更新以支持新版本的Python。
如果在旧版本的 Python 中发现安全问题,我们的方法是标记未获得 PSF 构建的更新安装程序的 Python 版本,并且在 Visual Studio 安装程序中将已知安全问题标记为“不支持”。微软不会删除这些版本,也不会添加更新的版本。
这样做的原因是:
- 将旧版本标记为“不再支持”,而不是默认选择它们,是明确这些版本的 Python 已有效地结束生命周期并可能存在安全漏洞;
- 不想删除旧版本,是因为客户可能仍然需要它们;代码通常会缓慢更新以支持新版本,并且在许多情况下,可能存在的安全问题是无关紧要的边缘问题,客户应自行判断继续使用旧版本 Python 所涉及的风险;
- 除了将 Python 3.9 安装程序添加到 Visual Studio 2019 之外,微软不希望为Python 工作负载可能不完全支持的新版本 Python 添加安装程序;在大多数情况下,开发者可以使用较新版本的 Python 来运行较旧的代码而不会出现问题,但微软不希望给大家留下这样一种印象,即旧版本的 Visual Studio 完全支持对 Python 语言的更改,而实际上它们不支持;
- 在大多数情况下,开发者可以从python.org或 Windows 商店安装更新版本的 Python,并保持现有的 Python 代码不变;Python 版本之间的重大更改数量很少,;
目前此项更改正在进行,由于 Visual Studio 2019 中的语言服务器已被弃用,因此 Visual Studio 2022 随附了现代高性能语言服务器 Pylance。语言服务器是受 Python 版本变化影响最大的组件,微软未来将会更灵活地协调 Python 版本的生命周期与 Visual Studio 版本的生命周期之间的差异,并尝试找到最为适当的方式。