Python in Visual Studio Code 2023年10月发布
排版:Alan Wang
我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展于 2023 年 10 月发布!
此版本包括以下公告:
- Python 调试器扩展更新
- 弃用 Python 3.7 支持
- Pylint 扩展更换时的 Lint 选项
- Mypy 扩展报告的范围和守护程序模式
- Grace Hopper 会议和开源日
如果您有兴趣,可以在我们的 Python、Jupyter 和 Pylance 扩展更新日志中查看完整的改进列表。
Python 调试器扩展更新
几个月前宣布的 Debugpy 扩展已重命名为“Python Debugger”,便于用户查找该扩展。
此扩展现在包括一个新的用户设置 debugpy.debugJustMyCode
,禁用该设置后,允许你单步执行所有应用程序的系统或第三方库代码(默认情况下,调试器仅单步执行你自己的 Python 代码)。对于那些想要更方便地禁用所有项目的 justMyCode 的人来说,这是一个流行的功能请求,而不必在每个项目的 launch.json
调试配置中手动配置它。
若要试用,请确保已安装 Python 调试器扩展。然后打开设置 UI(File > Preferences > Settings),搜索“debugJustMyCode”并禁用复选框:
现在,一旦您创建了一个 launch.json
文件,只要文件中 justMyCode
未指定,它就会默认使用 debugpy.debugJustMyCode
的值。请注意,指定 justMyCode
时,其值将优先于 debugpy.debugJustMyCode
设置。
Pylint 扩展更换时的 Lint 选项
默认情况下,Pylint 扩展仅在保存文件时报告错误和警告。现在有一个名为 pylint.lintOnChange
的新设置,一旦设置为 true
,将使扩展能够在您键入时报告错误和警告,而无需保存文件。
Mypy 扩展报告的范围和守护程序模式
Mypy 类型检查器扩展现在有两个新设置,允许您指定 mypy 的报告范围以及是否使用 mypy 的守护程序。
第一个是 mypy-type-checker.reportingScope
,可以将其设置为 file
(默认值) 以允许仅针对工作区中打开的文件报告问题,或设置为 workspace
启用工作区中所有文件的报告。
第二个是 mypy-type-checker.preferDaemon
,当设置为 true
时,将使用 mypy 的守护程序 (dmypy
) 而不是 mypy 本身 (mypy
) 来执行类型检查,这在某些情况下可能会快得多。
弃用 Python 3.7 支持
如之前在 2023 年 7 月的发布博客中提到的,我们已经在 Python 扩展中删除了官方的 Python 3.7 支持。没有计划主动删除对 Python 3.7的支持,因此我们预计在未来,该扩展将继续与Python 3.7非正式地合作。
请记住,Python 的所有其他版本现在都处于年度发布节奏,因此,我们预计在下一个日历年的第一个扩展版本中,一旦 Python 版本的生命周期结束,我们将停止对 Python 版本的官方支持(即 Python 3.8 计划在 2024 年 10 月达到 EOL,因此 2025 年的第一个扩展版本将停止官方支持)。
Grace Hopper 会议和开源日
9月22日,我们的团队参加了开源日!开源日是一个全天的黑客马拉松,也是 Grace Hopper Celebration 的一部分,Grace Hopper Celebration 是开源领域最大的女性和非二元技术人员庆祝活动。在本次活动中,与会者与同行以及经验丰富的导师合作,为几个开源项目做出贡献。
我们很高兴再次参加这次活动,并感谢所有与我们一起参加这次活动的导师,以及每一位为我们的项目做出贡献的参与者:
- @ludizhan 在 vscode-python#20233中做出了他们的第一个贡献。
- @annaburlyaeva 在 vscode-python#22038中做出了他们的第一个贡献。
- @rr2203 在 vscode-pylint#395 中做出了他们的第一个贡献
- @aku1310 在 vscode-pylint#388 中做出了他们的第一个贡献
- @Kelly-LC 在 vscode-black-formatter#321 中做出了他们的第一个贡献
- @bhagya-98 在 vscode-black-formatter#315、vscode-black-formatter#316 和 vscode-flake8#221 中做出了他们的第一个贡献。
- @Riya28 在 vscode-flake8#219 中做出了他们的第一个贡献
- @sainarne15 在 vscode-flake8#218 中做出了他们的第一个贡献
- @srilasya02 在 vscode-mypy#158 中做出了他们的第一个贡献
- @antar-ghuman 和@Jyothirmaikottu 在 vscode-mypy#153中做出了他们的第一个贡献
- @norasoliman 在 vscode-mypy#159 中做出了他们的第一个贡献
- @pheonix-18 在 vscode-isort#326 中做出了他们的第一个贡献
- @Riddhi-Thanki 在 vscode-isort#325 中做出了他们的第一个贡献
有许多“quick fix”功能问题可供那些希望做出贡献的人使用!我们希望鼓励 Python 社区以任何方式贡献和维护我们创建的各种扩展。您可以在 vscode-python、vscode-pylint、vscode-flake8、vsocde-isort、vscode-mypy 和 vscode-black-formatter 存储库中找到这些问题。
其他更改和增强功能
我们还添加了用户请求的增强功能和修复的问题,这些问题应该可以改善您在 Visual Studio Code 中使用 Python 和 Jupyter Notebooks 的体验。一些值得注意的变化包括:
- 为 conda 环境启用“Use Existing”和“Delete and Recreate”创建环境命令(vscode-python#21828)
- 支持转到 Pylance 的
__getattr__
定义(pylance-release#4764) - 现在可以将为部分调用参数(
python.analysis.inlayHints.callArgumentNames
) 启用 inlay 提示的设置为partial
禁用仅位置和仅关键字参数的提示,或设置为all
启用它们 (pylance-release#4543)
通过从 Marketplace 下载 Python 扩展和 Jupyter 扩展来尝试这些新的改进,或者直接从 Visual Studio Code 中的扩展视图(Ctrl + Shift + X 或 ⌘ + ⇧ + X)安装它们。您可以在文档中了解有关 Visual Studio Code 中 Python 支持的更多信息。如果您遇到任何问题或有建议,请在 Python VS Code GitHub 页面上提交问题。
我们还要特别感谢本月的贡献者:
- @Spitfire1900 在 vscode-python#22019中做出了他们的第一个贡献。
- @annaburlyaeva 在 vscode-python#22055中做出了他们的第一个贡献。
- @ludizhan 在 vscode-python#22058中做出了他们的第一个贡献。
- @himi11 在 vscode-python#22062中做出了他们的第一个贡献。
相关文章:

Python in Visual Studio Code 2023年10月发布
排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展于 2023 年 10 月发布! 此版本包括以下公告: Python 调试器扩展更新弃用 Python 3.7 支持Pylint 扩展更换时的 Lint 选项Mypy 扩展报告的范围和守护程序模式G…...

Webmin远程命令执行漏洞复现报告
漏洞编号 CVE-2019-15107 漏洞描述 Webmin是一个基于Web的系统配置工具,用于类Unix系统。密码重置页面中存在此漏洞,允许未经身份验证的用户通过简单的 POST 请求执行任意命令。 影响版本 Webmin<1.920 漏洞评级 严重 利用方法(利…...

webstorm自定义文件模板(Vue + Scss)
最终效果如下: 具体配置如下: 新增文件代码如下: <!--* Description: ${COMPONENT_NAME} 页面* Author: mhf* Date: ${DATE} --> <template><div>${COMPONENT_NAME} </div> </template><script&g…...
楔子-写在之前
最近一年都在忙着一个项目,并且需要学习另一个领域的知识,从单片机过渡到了LINUX嵌入式,倒静不下心去写点东西。看了下之前写的东西,感觉已经过去了很久很久。现在项目快忙完了,准备把最近的心得给大家分享下。 前言 …...

第 5 章 数组和广义表(稀疏矩阵的三元组顺序表存储实现)
1. 背景说明 为了节省存储空间,可以对这类矩阵进行压缩存储。所谓压缩存储是指:为多个值相同的元只分配一个存储空间,对零元不分配空间。 2. 示例代码 1)status.h /* DataStructure 预定义常量和类型头文件 */ #include <string.h>#i…...

【RabbitMQ 实战】11 队列的结构和惰性队列
一、 队列的结构 队列的组成: 队列由 rabbit_amgqueue_process 和 backing_queue两部分组成。rabbit_amqqueue_process负责协议相关的消息处理,即接收生产者发布的消息、向消费者交付消息、处理消息的确认 (包括生产端的 confirm 和消费端的 ack) 等。…...
Python3-批量重命名指定目录中的一组文件,更改其扩展名
Python3-批量重命名指定目录中的一组文件,更改其扩展名 1.argparse模块2.vars内置函数3.os.listdir(path)4.os.path.splitext(filepath)5.os.path.join6.os.rename7.os.path.isfile8.批量重命名指定目录中的一组文件,更改其扩展名 1.argparse模块 argpa…...

渗透测试KAILI系统的安装环境(第八课)
KAILI系统的安装环境(第八课) Kaili是一款基于PHP7的高性能微服务框架,其核心思想是面向服务的架构(SOA),支持http、websocket、tcp等多种通信协议,同时还提供了RPC、Service Mesh、OAuth2等功能。Kaili框架非常适合构…...

如何正确方便的理解双指针?力扣102 (二叉树的层序遍历)
双指针,顾名思义就是指针的指针。 在此之前我们需要先理解单指针 (简称为指针)。指针很简单,直接上例子:例:现有两个变量,a10,b20. 要求:交换他们的值,输出的结果应为a20…...
Vue或uniapp引入自定义字体
一、为什么引入字体 对于大部分APP或网站而言,字体是很重要的一部分。在前端开发中,选用合适的字体往往会极大地提升网站的视觉体验。然而,网页中默认字体的种类和风格有限,且在不同的设备、浏览器上渲染效果不尽相同。因此&…...

力扣:LCR 122. 路径加密 题目:剑指Offer 05.替换空格(c++)
本文章代码以c为例! 力扣:LCR 122. 路径加密 题目: 代码: class Solution { public:string pathEncryption(string path) {for(int i0;i<path.size();i){if(path[i].){path[i] ;}}return path;} }; 难度升级(原…...
cJson堆内存释放问题
cJSON_Delete(),是用来释放json对象的,释放父JSON对象后,子JSON对象也会被释放。 CJSON_free(),是用来释放其他对象的。 int main(void) {cJSON* cjson_test NULL;cJSON* cjson_address NULL;cJSON* cjson_skill NULL;char* s…...

论文阅读/写作扫盲
第一节:期刊科普 JCR分区和中科院分区是用于对期刊进行分类和评估的两种常见方法。它们的存在是为了帮助学术界和研究人员更好地了解期刊的学术质量、影响力和地位。 JCR分区(Journal Citation Reports):JCR分区是由Clarivate Ana…...

一文拿捏对象内存布局及JMM(JAVA内存模型)
1 JMM(Java Memory Model) 1 概述 Java内存模型(Java Memory Model简称JMM)是一种抽象的概念,并不真实存在,它描述的一组规则或者规范。通过这些规则、规范定义了程序中各个变量的访问方式。jvm运行的程序的实体是线程,而每个线程运行时&am…...

Android组件通信——ActivityGroup(二十五)
1. ActivityGroup 1.1 知识点 (1)了解ActivityGroup的作用; (2)使用ActivityGroup进行复杂标签菜单的实现; (3)使用PopupWindow组件实现弹出菜单组件开发; 1.2 具体…...
js的继承的方式
1.对象冒充继承 使用 bind,call,apply 解决构造函数属性的继承 缺点:不能继承原型上的属性和方法 //-------------父类-------------function Person(name, age, sex) {this.name name;this.age age;this.sex sex;}Person.prototype.run function () {console.log(我${this…...
聊聊HttpClient的重试机制
序 本文主要研究一下HttpClient的重试机制 HttpRequestRetryHandler org/apache/http/client/HttpRequestRetryHandler.java public interface HttpRequestRetryHandler {/*** Determines if a method should be retried after an IOException* occurs during execution.**…...

北邮22级信通院数电:Verilog-FPGA(4)第三周实验:按键消抖、呼吸灯、流水灯 操作流程注意事项
北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.注意事项 二.按键消抖 2.1 LED_deboun…...

Ghidra101再入门(上?)-Ghidra架构介绍
Ghidra101再入门(上?)-Ghidra架构介绍 最近有群友问我,说:“用了很多年的IDA,最近想看看Ghidra,这应该怎么进行入门?“这可难到我了。。 我发现,市面上虽然介绍Ghidra怎么用的文章和书籍很多&…...

Vue3路由引入报错解决:无法找到模块“xxx.vue”的声明文件 xxx隐式拥有 “any“ 类型。
这类情况应该遇见过吧,这是因为 TypeScript只能理解 .ts 文件,无法理解 .vue 文件。 解决方法:在项目的根目录或者src文件夹下创建一个后辍为 文件名.d.ts 的文件,并写入一下内容: declare module *.vue {import { …...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...