{"id":10225,"date":"2025-11-13T10:41:50","date_gmt":"2025-11-13T18:41:50","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/python\/?p=10225"},"modified":"2025-11-13T10:41:50","modified_gmt":"2025-11-13T18:41:50","slug":"python-in-visual-studio-code-november-2025-release","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/python\/python-in-visual-studio-code-november-2025-release\/","title":{"rendered":"Python in Visual Studio Code &#8211; November 2025 Release"},"content":{"rendered":"<p>We&#8217;re excited to announce that the November 2025 release of the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.python\">Python<\/a> extension for Visual Studio Code is now available!<\/p>\n<p>This release includes the following announcements:<\/p>\n<ul>\n<li>Add Copilot Hover Summaries as docstring<\/li>\n<li>Localized Copilot Hover Summaries<\/li>\n<li>Convert wildcard imports Code Action<\/li>\n<li>Debugger support for multiple interpreters via the Python Environments Extension<\/li>\n<\/ul>\n<p>If you&#8217;re interested, you can check the full list of improvements in our changelogs for the <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/releases\">Python<\/a> and <a href=\"https:\/\/github.com\/microsoft\/pylance-release\/blob\/main\/CHANGELOG.md\">Pylance<\/a> extensions.<\/p>\n<h2>Add Copilot Hover Summaries as docstring<\/h2>\n<p>You can now add your AI-generated documentation directly into your code as a docstring using the new <strong>Add as docstring<\/strong> command in Copilot Hover Summaries. When you generate a summary for a function or class, navigate to the symbol definition and hover over it to access the <strong>Add as docstring<\/strong> command, which inserts the summary below your cursor formatted as a proper docstring.<\/p>\n<p>This streamlines the process of documenting your code, allowing you to quickly enhance readability and maintainability without retyping.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2025\/11\/pylance-add-hover-summaries-as-docstring.gif\" alt=\"Add as docstring command in Copilot Hover Summaries\" \/><\/p>\n<h2>Localized Copilot Hover Summaries<\/h2>\n<p>GitHub Copilot Hover Summaries inside Pylance now respect your display language within VS Code. When you invoke an AI-generated summary, you&#8217;ll get strings in the language you&#8217;ve set for your editor, making it easier to understand the generated documentation.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2025\/11\/hover-summaries-in-portuguese.png\" alt=\"Copilot Hover Summary generated in Portuguese\" \/><\/p>\n<h2>Convert wildcard imports into Code Action<\/h2>\n<p>Wildcard imports <code>(from module import *)<\/code> are often discouraged in Python because they can clutter your namespace and make it unclear where names come from, reducing code clarity and maintainability.\nPylance now helps you clean up modules that still rely on <code>from module import *<\/code> via a new Code Action. It replaces the wildcard with the explicit symbols, preserving aliases and keeping the import to a single statement. To try it out, you can click on the line with the wildcard import and press <code>Ctrl + .<\/code> (or <code>Cmd + .<\/code> on macOS) to select the <strong>Convert to explicit imports<\/strong> Code Action.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2025\/11\/wildcard-import.png\" alt=\"Convert wildcard imports Code Action\" \/><\/p>\n<h2>Debugger support for multiple interpreters via the Python Environments Extension<\/h2>\n<p>The Python Debugger extension now leverages the APIs from the Python Environments Extension (<a href=\"https:\/\/github.com\/microsoft\/vscode-python-debugger\/pull\/849\">vscode-python-debugger#849<\/a>). When enabled, the debugger can recognize and use different interpreters for each project within a workspace. If you have multiple folders configured as projects\u2014each with its own interpreter &#8211; the debugger will now respect these selections and use the interpreter shown in the status bar when debugging.<\/p>\n<p>To enable this functionality, set &#8220;python.useEnvironmentsExtension&#8221;: true in your user settings. The new API integration is only active when this setting is turned on.<\/p>\n<p>Please report any issues you encounter to the <a href=\"https:\/\/github.com\/microsoft\/vscode-python-debugger\/issues\">Python Debugger repository<\/a>.<\/p>\n<h2>Other Changes and Enhancements<\/h2>\n<p>We have also added small enhancements and fixed issues requested by users that should improve your experience working with Python in Visual Studio Code. Some notable changes include:<\/p>\n<ul>\n<li>Resolve unexpected blocking during PowerShell command activation (<a href=\"https:\/\/github.com\/microsoft\/vscode-python-environments\/pull\/952\">vscode-python-environments#952<\/a>)<\/li>\n<li>The Python Environments Extension now respects the existing python.poetryPath user setting to specify which Poetry executable to use (<a href=\"https:\/\/github.com\/microsoft\/vscode-python-environments\/issues\/918\">vscode-python-environments#918<\/a>)<\/li>\n<li>The Python Environments Extension now detects both requirements.txt and dev-requirements.txt files when creating a new virtual environment for automatic dependency installation (<a href=\"https:\/\/github.com\/microsoft\/vscode-python-environments\/issues\/506\">vscode-python-environments#506<\/a>)<\/li>\n<\/ul>\n<p>We would also like to extend special thanks to this month&#8217;s contributors:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/iBug\">@iBug<\/a>: Fixed Python REPL cursor drifting in <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/pull\/25521\">vscode-python#25521<\/a><\/li>\n<\/ul>\n<p>Try out these new improvements by downloading the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.python\">Python extension<\/a> from the Marketplace, or install them directly from the extensions view in Visual Studio Code (Ctrl + Shift + X or \u2318 + \u21e7 + X). You can learn more about <a href=\"https:\/\/code.visualstudio.com\/docs\/python\/python-tutorial\">Python support in Visual Studio Code<\/a> in the documentation. If you run into any problems or have suggestions, <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/issues\/new\/choose\">please file an issue<\/a> on the <a href=\"https:\/\/github.com\/Microsoft\/vscode-python\">Python VS Code GitHub page<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The November 2025 release brings new Pylance features including improvements to Copilot Hover Summaries and a Code Action to convert wildcard imports to explicit imports. Keep on reading to learn more!<\/p>\n","protected":false},"author":1064,"featured_media":10222,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,6],"tags":[17],"class_list":["post-10225","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","category-visual-studio-code","tag-python"],"acf":[],"blog_post_summary":"<p>The November 2025 release brings new Pylance features including improvements to Copilot Hover Summaries and a Code Action to convert wildcard imports to explicit imports. Keep on reading to learn more!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/10225","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/users\/1064"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/comments?post=10225"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/10225\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media\/10222"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media?parent=10225"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/categories?post=10225"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/tags?post=10225"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}