Python in Visual Studio Code 2023年12月发布

作者:Courtney Webster

排版:Alan Wang

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

此版本包括以下公告:

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

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

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

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 页面上提交问题

相关推荐
落落落sss7 分钟前
MQ集群
java·服务器·开发语言·后端·elasticsearch·adb·ruby
2401_8532757327 分钟前
ArrayList 源码分析
java·开发语言
zyx没烦恼27 分钟前
【STL】set,multiset,map,multimap的介绍以及使用
开发语言·c++
lb363636363627 分钟前
整数储存形式(c基础)
c语言·开发语言
feifeikon30 分钟前
Python Day5 进阶语法(列表表达式/三元/断言/with-as/异常捕获/字符串方法/lambda函数
开发语言·python
大鲤余37 分钟前
Rust,删除cargo安装的可执行文件
开发语言·后端·rust
浪里个浪的102439 分钟前
【C语言】从3x5矩阵计算前三行平均值并扩展到4x5矩阵
c语言·开发语言·矩阵
MoFe11 小时前
【.net core】【sqlsugar】字符串拼接+内容去重
java·开发语言·.netcore
Envyᥫᩣ1 小时前
深入浅出C#编程语言
开发语言·c#
朱容君1 小时前
Linux系统编程多线程之读写锁讲解
linux·开发语言