专栏名称: 玩转VSCode
编程开发,业界资讯,以及 VS Code 的热门文章、使用技巧、插件推荐、插件开发攻略等,全部都可以在这里找到。带你玩转 VS Code!
目录
相关文章推荐
51好读  ›  专栏  ›  玩转VSCode

VS Code Python 5 月更新

玩转VSCode  · 公众号  ·  · 2024-05-17 17:10

正文

请到「今天看啥」查看全文


点击蓝字

关注我们



我们很高兴地宣布 Visual Studio Code 的 Python Jupyter 扩展将于 2024 年 5 月发布!


此版本包括以下公告:

  • “Implement all inherited abstract classes”代码操作

  • 新的自动缩进设置

  • Debugpy 从 Python 扩展中删除,转而使用 Python 调试器扩展

  • 现在可以在测试期间禁用Socket

  • Pylance 性能更新

如果您有兴趣,可以在 Python、Jupyter Pylance 扩展的更新日志中查看完整的改进列表。

Python

https://marketplace.visualstudio.com/items?itemName=ms-python.python

Jupyter

https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter

Python

https://github.com/microsoft/vscode-python/releases

Jupyter

https://github.com/microsoft/vscode-jupyter/blob/main/CHANGELOG.md

Pylance

https://github.com/microsoft/pylance-release/blob/main/CHANGELOG.md



“Implement all inherited abstract classes”代码操作

抽象类充当其他类的“蓝图”,并通过促进子类要遵守的清晰结构和要求来帮助构建模块化、可重用的代码。要在 Python 中定义抽象类,可以在 abc 模块中创建一个继承自 ABC 类的类 ,并使用 `@abstractmethod` 装饰器注释其方法。然后,可以创建从此抽象类继承的新类,并为基方法定义实现。使用最新的 Pylance 预发布版本可以更轻松地实现这些操作!定义从抽象类继承的新类时,现在可以使用“实现所有继承的抽象类”代码操作自动实现父类中的所有抽象方法和属性:

abc 模块中创建一个继承自 ABC 类的类

https://docs.python.org/3/library/abc.html



新的自动缩进设置

以前,Pylance 的自动缩进行为是通过`editor.formatOnType`设置控制的,如果想要禁用自动缩进,但通过其他支持的工具启用字体格式,这曾经是有问题的。为了解决这个问题,Pylance 的最新预发布版本现在有自己的设置来控制自动缩进行为,`python.analysis.autoIndent` 默认情况下是启用的。



Debugpy 从 Python 扩展中删除,转而使用 Python 调试器扩展

在我们的 2024 年 2 月发布博客 中,我们宣布将所有调试功能移至 Python 调试器扩展 ,该扩展默认与 Python 扩展一起安装。在此版本中,我们从 Python 扩展中删除了重复的调试代码,这有助于减小扩展下载大小。作为此更改的一部分,在 `launch.json` 配置文件中指定`"type": "python"`,`"type": "debugpy"`两者都被解释为对 Python 调试器扩展路径的引用。这确保了无缝过渡,而无需对现有配置文件进行任何修改即可有效运行和调试。展望未来,我们建议使用 `"type": "debugpy"` ,因为这直接对应于 Python 调试器扩展,该扩展提供对旧版和新式 Python 版本的支持。

Python 调试器扩展

https://marketplace.visualstudio.com/items?itemName=ms-python.debugpy



现在可以在测试期间禁用Socket

现在,您可以从测试 UI 使用套接字禁用来运行测试。这是通过 Python 扩展和测试运行子进程之间的通信切换来实现的,现在使用命名管道而不是编号端口。此功能在 Python 测试重写 中可用,默认情况下向所有用户推出,并将很快在 Python 扩展中完全采用。

Python 测试重写

https://devblogs.microsoft.com/python/python-in-visual-studio-code-june-2023-release/#test-discovery-and-execution-rewrite



Pylance 性能

Pylance 团队一直收到反馈,称 Pylance 的性能在过去几个版本中有所下降。因此,我们对内存消耗和索引进行了一些较小的改进,包括:

  • 改进了第三方包索引的性能

  • 从工作空间 .conda环境中跳过的 Python 文件无法扫描( @pylance-release#5191 )

  • 跳过不必要的py.typed文件检查的索引( @pyright#7652 )

  • 通过重构分词器和解析器输出来减少内存消耗( @pyright#7602 )

  • 改进了令牌创建的内存消耗( @pyright#7434 )

对于那些可能仍在使用 Pylance 时遇到性能问题的人,我们恳请通过命令面板中的 Pylance:Report Issue 命令提交问题,最好是日志、代码示例和/或安装在工作环境中的软件包。


此外,我们还在最新的 Pylance 预发布版本中添加了一些功能,以帮助识别潜在的性能问题并收集有关您面临的问题的其他信息。当扩展检测到可能存在性能问题时,会出现一个新通知,提示你在 Pylance 存储库中提交问题。此外,Pylance 现在提供了一个为所有工作线程生成的`cpuprofile`分析命令`Pylance: Start Profiling`。此文件是在通过触发 `Pylance: Start Profiling` and `Pylance: Stop Profiling` 命令启动和停止性能分析后生成的,并且可以在问题中作为附加数据提供。


通过这些较小的改进和报告性能问题的其他方法,我们希望继续改进性能。我们非常感谢在我们努力解决问题时的反馈和合作!

@pylance-release#5191

https://github.com/microsoft/pylance-release/issues/5191

@pyright#7652

https://github.com/microsoft/pyright/pull/7652

@pyright#7602

https://github.com/microsoft/pyright/pull/7602

@pyright#7434

https://github.com/microsoft/pyright/pull/7434



其他更改和增强功能

我们还添加了一些小的增强功能,并修复了用户请求的问题,这些问题应该可以改善你在 Visual Studio Code 中使用 Python 和 Jupyter Notebooks 的体验。一些值得注意的变化包括:

  • 测试资源管理器在嵌套类中正确显示使用 `testscenarios` 单元测试和参数化测试的项目 ( @vscode-python#22870 )。

  • 测试资源管理器现在处理具有符号链接的工作区中的测试,特别是工作区根目录,这些工作区根目录是符号链接路径的子级,这在 WSL 方案中特别有用 ( @vscode-python#22658 )。


我们还要特别感谢本月的贡献者:

  • @DetachHead 支持在 @vscode-python#23267 的工作空间设置中进行实验配置

  • @DavidArchibald @vscode-python-debugger#267 中修复了在 WSL 上运行时将调试器附加到进程的问题

@vscode-python#22870

https://github.com/microsoft/vscode-python/issues/22870

@vscode-python#22658

https://github.com/microsoft/vscode-python/issues/22658

@DetachHead

https://github.com/DetachHead

@vscode-python#23267

https://github.com/microsoft/vscode-python/pull/23267

@DavidArchibald

https://github.com/DavidArchibald

@vscode-python-debugger#267

https://github.com/microsoft/vscode-python-debugger/pull/267



征集社区反馈意见

当我们计划和优先考虑未来的工作时,我们重视您的反馈!以下是我们希望得到反馈的几个问题:

  • @vscode-python#22827 ) 中测试覆盖率的设计方案


通过从市场下载 Python 扩展和 Jupyter 扩展来试用这些新的改进,或直接从 Visual Studio Code 中的 扩展 视图(Ctrl + Shift + X 或 ⌘ + ⇧ + X)安装它们。可以在文档中详细了解 Visual Studio Code 中的 Python 支持 。如果遇到任何问题或有建议,请在 Python VS Code GitHub 页面上提交问题

@vscode-python#22827

https://github.com/microsoft/vscode-python/issues/22827

Jupyter

https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter

扩展

https://marketplace.visualstudio.com/items?itemName=ms-python.python

Visual Studio Code 中 Python 支持

https://code.visualstudio.com/docs/python/python-tutorial

Python VS Code GitHub 页面上提交问题

https://github.com/Microsoft/vscode-python









请到「今天看啥」查看全文