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

相关推荐
IPdodo_7 分钟前
Codex 总是 Reconnecting?从 401 到响应流中断的排查方法
python·requests
京和动物医院·总院15 分钟前
2026年未央区宠物医院:如何挑选最适合您爱宠的健康守护者
大数据·人工智能·python
刘小八18 分钟前
RAG 文档切分不是越细越好:选择 Chunk Size 与 Overlap
人工智能·python·语言模型
互联网中的一颗神经元20 分钟前
小白python入门 - 23. Python 正则表达式的应用
python·正则表达式
雪碧透心凉_22 分钟前
while 循环与循环嵌套
开发语言·python
初学者,亦行者28 分钟前
利用pyecharts自动化绘制漏斗图保姆级教程
python·信息可视化·数据分析
乐观勇敢坚强的老彭28 分钟前
信奥C++一维数组笔记
开发语言·c++·笔记
这就是佬们吗36 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
游戏开发爱好者843 分钟前
iOS开发IDE有哪些 Xcode 和 快蝎 轻量替代方案
ide·vscode·ios·个人开发·xcode·swift·敏捷流程
卷无止境1 小时前
提升 Python 代码健壮性的方法大盘点
后端·python