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

相关推荐
huisheng_qaq33 分钟前
【Python基础篇-04】深入理解python的函数、参数与作用域
python·ai·函数·参数作用域
宸津-代码粉碎机5 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
Y3815326625 小时前
SERP API 计费口径:credits_charged、执行失败扣费与退款边界
python·搜索引擎
chenbingjie_c6 小时前
C++ 进阶核心知识点总结:模板、内存分区、new/delete、内存池
开发语言·c++
Escalating_xu7 小时前
【C 语言】深入理解指针(1·下):指针运算、野指针、assert 与传址实战
java·c语言·开发语言
蒸鱼Yuzheng7 小时前
设备端性能工件可靠导出:断点续传、哈希、manifest 与失败恢复
android·自动化测试·python·adb·数据完整性
实心儿儿7 小时前
Qt — Qt 事件
开发语言·qt
周杰偷奶茶7 小时前
【Java】数据类型与变量
java·开发语言
code斗7 小时前
Java数据结构:堆详解
java·开发语言·数据结构
重生之小比特8 小时前
【C++进阶】map和set
java·开发语言·c++