Python in Visual Studio Code 2023年12月发布

作者:Courtney Webster

排版:Alan Wang

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

此版本包括以下公告:

  • 可配置的调试选项已添加到"运行"按钮菜单
  • 可以使用 Pylance 显示类型层次结构
  • 停用终端中自动激活的虚拟环境的命令支持
  • 设置以打开/关闭 REPL Smart Send,并在不支持时显示消息

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

可配置的调试选项已添加到"运行"按钮菜单

Python 调试器扩展现在在"运行"按钮菜单下具有可配置的调试选项。如果选择"Python Debugger: Debug using launch.json ",并且工作区中存在一个 launch.json,则会显示可以选择用于启动调试器的所有可用调试配置。如果您没有现有的 launch.json,系统将提示您选择 launch.json 调试配置模板,以便为 Python 应用程序创建文件,然后可以使用此配置运行应用程序。

Gif 演示了"运行"按钮菜单中的可配置调试选项

可以使用 Pylance 显示类型层次结构

现在,在使用 Pylance 时,您可以更方便地浏览和浏览 Python 项目的类型关系。这在处理具有复杂类型关系的大型代码库时非常有用。

右键单击符号时,可以选择"Show Type Hierarchy"以打开类型层次结构视图。您可以在视图中浏览符号的子类型以及超类型。

GIF 演示 Pylance 在 Python 项目上显示类型层次结构。

可以使用 Pylance 显示类型层次结构

停用终端中自动激活的虚拟环境的命令支持

Python 扩展具有一种新的激活机制,可在默认终端中激活所选环境,而无需运行任何显式激活命令。如我们的 2023 年 8 月发行说明中所述,这目前处于实验性功能,可以通过以下用户设置启用:"python.experiments.optInto": ["pythonTerminalEnvVarActivation"] 。

但是,此激活机制的一个问题是它不支持 deactivate 命令,因为没有固有的激活脚本。我们收到反馈,这是某些用户工作流的重要组成部分,因此我们添加了对所选默认终端为 PowerShell 或 CMD 的 deactivate 支持。我们计划在未来增加对其他终端的支持。

Gif 演示了 Powershell 终端的自动激活和使用 deactivate 命令。

设置以打开/关闭 REPL Smart Send,并在不支持时显示消息

尝试在包含不受支持的 Python 代码(例如 Python 2 源代码)的 Python 文件上使用 kbstyle(Shift+Enter) 智能发送方式时,现在会出现一条警告消息和一个用于停用 REPL 智能发送的设置。用户还可以通过该设置 python.REPL.enableREPLSmartSend 更改其用户和工作区特定行为,以便进行 REPL 智能发送。

其他更改和增强功能

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

Pylance 扩展已将其发布节奏调整为每月稳定版本和夜间预发布版本,类似于 Python 扩展发布节奏。这些更改将允许对稳定版本进行更广泛的测试,并提供更可靠的用户体验。

现在,在带有 Python 调试器扩展 (@vscode-python-debugger#115) 的附加调试配置中支持数值的字符串输入。

Python 测试适配器重写实验已向 100% 的用户推出。目前,您可以通过添加 "python.experiments.optOutFrom" : "pythonTestAdapter"settings.json 来选择退出,但我们很快就会放弃这个实验性标志并采用这个新架构。

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

相关推荐
只睡四小时34 分钟前
Three.js Sub-tick:漏判 60.7%→0
开发语言·javascript·性能优化·ecmascript·游戏开发·three.js·碰撞检测
码农小河661 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
东鹏特饮3 小时前
系统运维(传统/通用运维)面试题
开发语言·php
今天要早睡_3 小时前
C++01_入门基础复习
开发语言·c++
黑马程序员毕设4 小时前
基于 Java 的餐饮点餐系统设计与应用报告
java·开发语言
1-1=06 小时前
C# 委托与事件
开发语言·c#
Fuyo_11196 小时前
C++ 运行时多态与虚函数机制全面剖析【面试重点】
开发语言·c++·面试
武天旭6 小时前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
w_zero_one7 小时前
递归算法(一)
java·开发语言·算法
视觉小萌新7 小时前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json