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 { …...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
