{"id":10029,"date":"2025-04-04T09:41:16","date_gmt":"2025-04-04T17:41:16","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/python\/?p=10029"},"modified":"2025-04-04T09:41:16","modified_gmt":"2025-04-04T17:41:16","slug":"python-in-visual-studio-code-april-2025-release","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/python\/python-in-visual-studio-code-april-2025-release\/","title":{"rendered":"Python in Visual Studio Code &#8211; April 2025 Release"},"content":{"rendered":"<p>We&#8217;re excited to announce the April 2025 release of the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.python\">Python<\/a>, <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-python.vscode-pylance\">Pylance<\/a> and <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-toolsai.jupyter\">Jupyter<\/a> extensions for Visual Studio Code!<\/p>\n<p>This release includes the following announcements:<\/p>\n<ul>\n<li>Enhanced Python development using Copilot and Notebooks<\/li>\n<li>Improved support for editable installs<\/li>\n<li>Faster and more reliable diagnostic experience (Experimental)<\/li>\n<li>Pylance custom Node.js arguments<\/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>, <a href=\"https:\/\/code.visualstudio.com\/updates\/\">Jupyter<\/a> and <a href=\"https:\/\/github.com\/microsoft\/pylance-release\/blob\/main\/CHANGELOG.md\">Pylance<\/a> extensions.<\/p>\n<h1>Enhanced Python development using Copilot and Notebooks<\/h1>\n<p>The latest improvements to Copilot aim to simplify notebook workflows for Python developers. Sign in to a GitHub account to <a href=\"vscode:\/\/GitHub.Copilot-Chat\/chat?mode=agent\">use Copilot for free<\/a> in VS Code!<\/p>\n<p>Copilot now supports editing notebooks, using both edit mode and agent mode, so you can effortlessly modify content across multiple cells, insert and delete cells, and adjust cell types\u2014all without interrupting your flow.<\/p>\n<p>VS Code also now supports a new tool for creating Jupyter notebooks using Copilot. This feature plans and creates notebooks based on your query and is supported in all of the various Copilot modes:<\/p>\n<ul>\n<li><a href=\"https:\/\/aka.ms\/vscode-copilot-edit\">Edit mode<\/a> with <code>chat.edits2.enabled:true<\/code> enabled.<\/li>\n<li><a href=\"https:\/\/aka.ms\/vscode-copilot-agent\">Agent mode<\/a> for autonomous peer programming.<\/li>\n<li><a href=\"https:\/\/aka.ms\/vscode-chat\">Ask mode<\/a> utilizing the <code>\/newNotebook<\/code> command for quick notebook creation tailored to your project needs.<\/li>\n<\/ul>\n<p>Lastly, you can now add notebook cell outputs, such as text, errors, and images, directly to chat as context. Use the <strong>Add cell output to chat<\/strong> action, available via the triple-dot menu or by right-clicking the output. This lets you reference the output when using ask, edit, or agent mode, making it easier for the language model to understand and assist with your notebook content.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2025\/04\/copilot-notebooks-edits.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-10030\" src=\"https:\/\/devblogs.microsoft.com\/python\/wp-content\/uploads\/sites\/12\/2025\/04\/copilot-notebooks-edits.gif\" alt=\"Gif showing attaching cell output as context to Copilot Chat.\" width=\"1600\" height=\"900\" \/><\/a><\/p>\n<p>These updates expand Copilot support for Python developers in the Notebook ecosystem enhancing your development workflow no matter the file type.<\/p>\n<h1>Improved support for editable installs<\/h1>\n<p>Pylance now supports resolving import paths for packages installed in editable mode (<code>pip install -e .<\/code>) as defined by <a href=\"https:\/\/peps.python.org\/pep-0660\/\">PEP 660<\/a> which enables an improved IntelliSense experience in scenarios such as local development of packages or collaborating on open source projects.<\/p>\n<p>This feature is enabled via <code>setting(python.analysis.enableEditableInstalls:true)<\/code> and we plan to start rolling it out as the default experience throughout this month. If you experience any issues, please report them at the <a href=\"https:\/\/github.com\/microsoft\/pylance-release\">Pylance GitHub repository<\/a>.<\/p>\n<h1>Faster and more reliable diagnostic experience (Experimental)<\/h1>\n<p>In this release, we are rolling out a new update to enhance the accuracy and responsiveness of Pylance&#8217;s diagnostics. This update is particularly beneficial in scenarios involving multiple open or recently closed files.<\/p>\n<p>If you do not want to wait for the roll out, you can set <code>setting(python.analysis.usePullDiagnostics:true)<\/code>. If you experience any issues, please report them at the <a href=\"https:\/\/github.com\/microsoft\/pylance-release\">Pylance GitHub repository<\/a>.<\/p>\n<h1>Pylance custom Node.js arguments<\/h1>\n<p>You can now pass custom Node.js arguments directly to Node.js with the new <code>setting(python.analysis.nodeArguments)<\/code> setting, when using <code>setting(python.analysis.nodeExecutable)<\/code>. By default, the setting is configured as <code>\"--max-old-space-size=8192\"<\/code>. However, you can adjust this value to better suit your needs. For instance, increasing the memory allocation can be helpful when working with large workspaces in Node.js.<\/p>\n<p>Additionally, when setting <code>setting(python.analysis.nodeExecutable)<\/code> to <code>auto<\/code>, Pylance now automatically downloads Node.js.<\/p>\n<h2>We would also like to extend special thanks to this month&#8217;s contributors:<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/Sclafus\">@Sclafus<\/a> Updated <code>condarc.json<\/code> in <a href=\"https:\/\/github.com\/microsoft\/vscode-python\/pull\/24918\">vscode-python#24918<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/pheonix-18\">@pheonix-18<\/a> Added Python 2.13-dev to test actions in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/330\">vscode-isort#330<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/Riddhi-Thanki\">@Riddhi-Thanki<\/a> Updated default interpreter description in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/328\">vscode-isort#328<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/apollo13\">@apollo13<\/a> Update minimum required Python version to Python 3.8 in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/338\">vscode-isort#338<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/aparna0522\">@aparna0522<\/a> Updated packages for extension in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/332\">vscode-isort#332<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/archont94\">@archont94<\/a> Fixed selecting <code>isort<\/code> settings from path in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/386\">vscode-isort#386<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/connorads\">@connorads<\/a> Updated config example in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/390\">vscode-isort#390<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/jicruz96\">@jicruz96<\/a> Do not log traceback if file has <code>skip_file<\/code> comment in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/416\">vscode-isort#416<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/iloveitaly\">@iloveitaly<\/a> Added tool path so isort works without bundled version in <a href=\"https:\/\/github.com\/microsoft\/vscode-isort\/pull\/417\">vscode-isort#417<\/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> and the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-toolsai.jupyter\">Jupyter 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 April 2025 release of the Python and Jupyter extensions for Visual Studio Code is now available. This update introduces enhancements to the Copilot experience in Notebooks, improved support for editable installs, faster and more reliable diagnostics, and the addition of custom Node.js arguments with Pylance, and more!<\/p>\n","protected":false},"author":99209,"featured_media":10119,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,6],"tags":[17],"class_list":["post-10029","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 April 2025 release of the Python and Jupyter extensions for Visual Studio Code is now available. This update introduces enhancements to the Copilot experience in Notebooks, improved support for editable installs, faster and more reliable diagnostics, and the addition of custom Node.js arguments with Pylance, and more!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/10029","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\/99209"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/comments?post=10029"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/posts\/10029\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media\/10119"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/media?parent=10029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/categories?post=10029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/python\/wp-json\/wp\/v2\/tags?post=10029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}