Python in Visual Studio Code 2023年11月发布

排版:Alan Wang

我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 11 月发布!
此版本包括以下公告:

  • 改进了使用 Shift + Enter 在终端中运行当前行
  • 弃用内置 linting 和格式设置功能
  • 对 Python linting 扩展的改进
  • 重新配置测试输出
  • 虚拟环境停用帮助
  • VS Code 中的 Python 发布视频

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

对 Shift + Enter 在终端中运行行的改进

Python 扩展正在努力改进在未拉选要运行的代码时将代码发送到 Python REPL (Shift+Enter) 的行为。以前,当您将光标放在一行 Python 代码上并按下 Shift+Enter 时,Python 扩展会将确切的行内容发送到 REPL,即使它会失败,例如,运行多行命令的一部分时会失败。

借助我们新的实验性智能发送功能,Python 扩展会将光标所在行周围的最小可运行代码块发送到 REPL 以执行。这可确保仅将完整和可执行的代码部分发送到 REPL。光标也会自动放置在下一个可执行行,以便在迭代执行多个代码块时提供流畅的体验。

若要试用,可以添加以下用户设置:"python.experiments.optInto: ["pythonREPLSmartSend"]。虽然此功能目前处于实验阶段,但我们预计它将成为将来的默认行为。如果您对我们如何进一步改进此功能有任何反馈或建议,请告诉我们!
在这里插入图片描述

已弃用内置 linting 和格式设置功能

随着我们去年对 VS Code 中的 linting 和格式化扩展所做的所有正在进行的工作和改进,我们已弃用 Python 扩展中附带的内置 linting 和格式化功能。这包括所有 linting 和格式化命令以及设置 (python.linting.*python.formatting.*)。如果您仍在使用这些已弃用的设置,我们建议您删除它们,并改用 linting 和格式设置扩展,因为它们提供了更可配置和更灵活的体验。

如果你使用的是尚无扩展的 linter 或格式化程序,则可以为你喜欢的 Python 工具创建 linter 或格式化程序 VS Code 扩展!查看我们的 Python 工具扩展模板来快速入门。

此外,我们想重点介绍社区贡献的 Ruff 扩展。Ruff 是一个用 Rust 编写的 Python linter,它支持各种 linter,例如 pyflakes、pycodestyle、pydocstyle 等!他们最近还启用了在 VS Code 中使用 Ruff 作为格式化程序的支持 ("[python]":{"editor.defaultFormatter": "charliermarsh.ruff" })。试用 VS Code 中的 Python linting 和格式设置支持!

对 Python linting 扩展的改进

我们对团队支持的 linting 扩展进行了多项改进,以允许使用您最喜欢的 Python 工具获得更可配置和更灵活的体验。

Pylint、Mypy 和 Flake8 扩展现在提供设置,允许您为 linting 中排除的文件指定 glob 模式。如果您正在使用具有许多子项目的大型代码库,并且希望排除某些文件夹的 linting,这将非常有用。

这些设置分别为"pylint.ignorePatterns""mypy-type-checker.ignorePatterns""flake8.ignorePatterns"

这些扩展还支持 cwd 设置,这允许您指定 linter 的工作目录。此设置已更新为支持 ${fileDirname} 变量 ,因此可以将工作目录动态设置为在编辑器中打开的文件的父文件夹。如果您正在使用 mono-repos,并且希望在打开不同子项目中的文件时动态更新 linter 的工作目录,这将特别有用。这些设置分别为"pylint.cwd""mypy-type-checker.cwd""flake8.cwd"

我们还更改了 "mypy-type-checker.preferDaemon" 的默认值,仅适用于 Mypy 扩展。以前,它被设置为 true ,这意味着默认情况下将使用 Mypy 守护程序。收到反馈后,我们已将默认值更改为 false。如果您想知道哪个值最适合您,我们建议您使用 Mypy 守护程序,前提是出于性能原因,您启用了 Mypy 将报告范围设置为整个工作区 ("mypy-type-checker.reportingScope": "workspace")。否则,如果报告范围设置为当前文件,建议使用扩展附带的 Mypy 可执行文件。

重新配置测试输出

我们已对启用 pythonTestAdapter 试验时在 Python 扩展中查看测试输出并与之交互的方式进行了重大改进,这是我们在几个月前宣布的。以前,测试发现和执行的输出不一致地分散在 Python 测试日志输出通道和“测试结果”面板中,某些信息在这两个位置重复。为了巩固体验,我们现在在“Test Results”面板中显示与测试执行相关的输出,并在 Python 输出通道中显示测试发现。要了解更多信息,请参阅我们的相关 wiki。

如果您使用 Pytest 并在 Workspace 的 settings.json 中设置"python.testing.pytestArgs": ["--color=yes"],则此新方法还支持输出中的着色。着色仅适用于“测试结果”面板中的测试执行,不适用于“Python 测试日志”面板中的发现或输出。
在这里插入图片描述
还有一个新按钮,允许你在发生测试发现错误时更轻松地从“测试资源管理器”视图打开测试日志。
在这里插入图片描述

虚拟环境停用帮助

几个月前,我们宣布了一项实验背后的新功能,该功能支持使用环境变量激活终端,旨在通过自动激活终端中的选定环境来增强您的开发工作流程,而无需显式激活命令。但是,由于没有显式激活脚本在工作,因此启用此实验时,该命令 deactivate 不再起作用。

Python 扩展现在将检测您何时尝试运行该命令 deactivate,并显示一个帮助程序通知,该通知将指导您如何为 shell 添加脚本,以便在通过环境变量激活环境时使命令能够再次工作。它还提供了一个按钮,可以更方便地打开 shell 配置文件,以便您添加必要的脚本。
在这里插入图片描述
您可以在此处找到有关如何为 shell 添加必要脚本的完整文档。

如果您未参与实验,但想要试用此功能,可以添加以下用户设置:"python.experiments.optInto: ["pythonTerminalEnvVarActivation"]

VS Code 中的 Python 发布视频

Python 社区倡导者 Dawn Wages 介绍了 VS Code 中的 Python 发布视频中的关键发布新闻和增强功能!这些短视频将在 Visual Studio Code YouTube 频道上随所有后续版本一起发布,重点介绍关键更改和增强功能,以及演示如何与这些新功能交互的视频内容!

有关更多 Python 新闻和社区参与,请查看每月第二个星期五由 Dawn Wages 主办的 Python Pulse!

其他更改和增强功能

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

  • 我们的文档中添加了一个新的 FastAPI 教程!了解如何在开发 FastAPI 应用程序时充分利用 VS Code 和 Python 扩展。
  • Python 扩展现在会显示一条通知,以帮助在尝试在包含依赖项文件(如 requirements.txtrequirements/*.txt)且没有当前 .venv 或者 .conda 文件夹的工作区中运行或调试 Python 文件时创建虚拟环境。此通知提供了一种使用 Python:Create Environment 命令创建新虚拟环境的快速简便方法。此设置可以禁用 python.createEnvironment.trigger 设置为 off
  • Python 调试器扩展现在具有特定于平台的版本,这意味着在更新时将仅安装平台所需的文件。这减小了扩展的大小,并有助于缩短启动时间。
  • Tensorboard 功能现已从 Python 扩展中移出,并移至独立的 Tensorboard 扩展中。您可以在 Tensorboard 扩展 GitHub 存储库中提供反馈。
  • 现在,您可以通过状态栏上的语言状态图标更轻松地启用和禁用 Pylance 自动导入完成 (pylance-release#3894)
  • 用 Pylance 时 IntelliSense 支持 __setattr____delattr__以及__getattribute__ (pylance-release#4786)

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

  • @PeterJClaw 在 @vscode-python #22132 中将 Python 3.12 支持将 Jedi 提升到 0.19.1
  • @BoltonBailey 从 @vscode-python#22254 中的错误消息中删除不匹配的括号
  • @HVbajoria 修复了 @vscode-pylint#390 中面向用户的文本中 “Python” 的大写

征集社区反馈

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

  • 重写时 Django 测试的建议设计 (@vscode-python#22206)
  • 当用户在实际导入之前对方法执行 Shift+Enter 时自动导入库 (@vscode-python#22329)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/195424.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Appium移动自动化测试--安装Appium

Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰。 web自动化测试的路线是这样的:编程语…

asp.net core mvc之 RAZOR共享指令和标签助手 TagHelpers

一、RAZOR共享指令 RAZOR共享指令:在视图中导入命名空间,执行依赖注入。 RAZOR共享指令是写在 Views目录下的 _ViewImports.cshtml 文件 支持指令如下: addTagHelper 增加标签助手 removeTagHelper 移除标签助手 tagHelperPrefix 标签助手…

防抖-节流-深拷贝-事件总线

一、防抖与节流 1.认识防抖与节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流动中 而JavaScript是事件驱动的,大量的操作会触发事件,加入到事件队列中处理。而对于某些频繁…

【Java 进阶篇】揭秘 JQuery 广告显示与隐藏:打造令人惊艳的用户体验

在当今互联网时代,广告已经成为网页中不可忽视的一部分。然而,如何通过巧妙的交互设计,使广告既能吸引用户的眼球,又不会给用户带来干扰,成为了许多前端开发者需要思考的问题之一。在这篇博客中,我们将深入…

长短期记忆(LSTM)与RNN的比较:突破性的序列训练技术

长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。 Why LSTM提出的动机是为了解…

创邻科技亮相ISWC 2023,国际舞台见证知识图谱领域研究突破

近日,第22届国际语义网大会 ISWC 2023 在雅典希腊召开,通过线上线下的形式,聚集了全球的顶级研究人员、从业人员和行业专家,讨论、发展和塑造语义网和知识图谱技术的未来。创邻科技CEO张晨博士作为知识图谱行业专家受邀参会&#…

最新完美版积分商城系统-奇偶商城系统源码+独立代理后台+附搭建教程

源码简介: 最新完美版积分商城系统,网购商城系统源码,是更新的奇偶商城系统源码,它拥有独立代理后台,而且内附搭建教程。 1.演示环境:Linux Centos7以上版本 宝塔 2.Nginx 1.18.0 PHP7.0 Mysql5.6 3…

CTFd-Web题目动态flag

CTFd-Web题目动态flag 1. dockerhub注册2. dockerfile编写3. 上传到docker仓库4. 靶场配置5. 动态flag实现 1. dockerhub注册 想要把我们的web题目容器上传到docker仓库中,我们需要dockerhub官网注册一个账号,网址如下 https://hub.docker.com/2. dock…

vue-数据双向绑定原理

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-数据双向绑定原理 目录 虚拟DOM与Diff算法 1. 对虚拟DOM的理解? 2. 虚拟DOM的解…

解决:Error: Missing binding xxxxx\node_modules\node-sass\vendor\win32-x64-83\

一、具体报错 二、报错原因 这个错误是由于缺少 node-sass 模块的绑定文件引起的。 三、导致原因 3.1、环境发生了变化 3.2、安装过程出现问题 四、解决方法步骤: 4.1、重新构建 node-sass 模块 npm rebuild node-sass 4.2、清除缓存并重新安装依赖 npm c…

2019年12月 Scratch(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 以下程序执行后,角色面向的方向是? A:右上 B:右下 C:左上 D:左下 答案:B 面向-135度,是面向左下角,向右旋转-90度等于向左旋转90度。所以会旋转到右下角。 第2题 以下程…

【Rust】快速教程——模块mod与跨文件

前言 道尊:没有办法,你的法力已经消失,我的法力所剩无几,除非咱们重新修行,在这个世界里取得更多法力之后,或许有办法下降。——《拔魔》 \;\\\;\\\; 目录 前言跨文件mod多文件mod 跨文件mod //my_mod.rs…

ChatGPT简介及基本概念

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列点击跳转>ChatGPT和AIGC 👉关于作者 专…

栈与队列练习题

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

SpringCloud-Gateway修改Response响应体,并解决大数据量返回不全等问题

官网相关案例: Spring Cloud Gatewayhttps://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-modifyresponsebody-gatewayfilter-factory ModifyRequestBodyGatewayFilterFactory类: https://github.com/spring-cloud/spring-cloud-gate…

高防IP可以抵御哪些恶意攻击

高防IP协议可以隐藏用户的站点,使得攻击者无法发现恶意攻击的目标网络资源,从而提高了源站的安全性。能够有效抵御常见的恶意攻击类型ICMPFlood、UDPFlood、 TCPFlood、SYNFlood、ACKFlood等,帮助游戏、金 融、电子商务、互联网、政企等行业抵…

Unity中Shader矩阵的乘法

文章目录 前言一、矩阵乘以标量二、矩阵和矩阵相乘1、第一个矩阵的列数必须 与 第二个矩阵的行数相等,否则无法相乘!2、相乘的结果矩阵,行数由第一个矩阵的行数决定,列数由第二个矩阵的列数决定! 三、单位矩阵四、矩阵…

设计模式-适配器-笔记

适配器模式Adapter 动机(Motivation) 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是在这些现存对象所不满足的。 如何应对这种“迁移的变化”&#xff1…

互联网Java工程师面试题·微服务篇·第一弹

目录 ​编辑 1、您对微服务有何了解? 2、微服务架构有哪些优势? 3、微服务有哪些特点? 4、设计微服务的最佳实践是什么? 5、微服务架构如何运作? 6、微服务架构的优缺点是什么? 7、单片&#xff0c…

LMI相机配置步骤,使用Gocator2550相机

在此之前可以先浏览我编写的相机SDK通用类和LMISDK,进行配套观看 https://blog.csdn.net/m0_51559565/article/details/134404394 //LMI相机SDK https://blog.csdn.net/m0_51559565/article/details/134403745 //相机通用类1.启动LMI加速器 LMI加速器用于将相机…