August 13th, 2020

Python in Visual Studio Code – August 2020 Release

Savannah Ostrowski
Program Manager

We are pleased to announce that the August release of the Python Extension for Visual Studio Code is now available. You can download the Python extension from the Marketplace, or install it directly from the extension gallery in Visual Studio Code. If you already have the Python extension installed, you can also get the latest update by restarting Visual Studio Code. You can learn more about  Python support in Visual Studio Code in the documentation.  

In this release we addressed a total of 38 issues, and it includes:  

  • Support for multiple Python interactive windows 
  • Pylance as an officially supported language server setting value 
  • Smart signature help with Pylance  

If you’re interested, you can check the full list of improvements iour changelog. 

Support for multiple Python interactive windows 

We’re excited to announce that you can now start multiple Python interactive windows with the Python extension! This was one of the most requested features on the Python in VS Code GitHub repo 

By default, every time you run the “Python: Create Python Interactive Window” command in the command palette (View Command Palette…), it will create a new interactive window in VS Code:  

Multiple interactive windows being created when running the "Python: Create Python Interactive Window" command

Code cells from Python scripts by default will still be executed in a same interactive window. However, you can now configure the Python extension to run separate files in separate interactive windows.  Just open the settings page (File Preferences Settings)search for “interactive window mode” and change the setting value to “perFile”.  

Interactive Window Monde settings options (perFile, single and multiple).

Now when you run cells from different files, they will each run on their own separate window: 

Running cells from each file into separate Python interactive windows.

If you would like to remain with the single interactive window behavior, you can set the value of the interactive window mode to “single”.  

Pylance as an officially supported language server value

This release includes support to officially add Pylance as a supported value in our python.languageServer setting. You can now set Pylance via the settings editor UI in Visual Studio Code. If you haven’t already installed Pylance, you can download it from the marketplace or simply set this value and we will prompt you to install it! If you missed the announcement about our new Pylance language server, you can read more about it here. 

Configuration options for Language Server setting (Jedi, Pylance, Microsoft, None)  

Improved signature help for overloaded functions in Pylance

Pylance has also improved how it displays signature help when you are invoking a function with multiple overrides. You can now navigate between signatures easily while Pylance bolds the appropriate active parameter.  

Smart signature help with pylance.

Other Changes and Enhancements 

We have also added enhancements and fixed issues requested by users that should improve your experience working with Python in Visual Studio Code. Some notable changes include: 

  • Cell editing shortcuts for python interactive cells that help make doing data science work directly in Python files even more productive (thanks to @earthastronaut!). (#12414)
  • Added a command to restart the language server. (#3073) 
  • Update to the latest version of jedi (0.17.2). This adds support for Python 3.9 and fixes some bugs, but is expected to be the last release to support Python 2.7 and 3.5. (thanks Peter Law). (#13037) 

We’re constantly A/B testing new features. If you see something different that was not announced by the team, you may be part of the experiment! To see if you are part of an experiment, you can check the first lines in the Python extension output channel. If you wish to opt-out of A/B testing, you can open the user settings.json file (View Command Palette… and run Preferences: Open Settings (JSON)) and set the “python.experiments.enabled” setting to false 

Be sure to download the Python extension for Visual Studio Code now to try out the above improvements. If you run into any problems or have suggestionsplease file an issue on the Python VS Code GitHub page. 

Author

Savannah Ostrowski
Program Manager

Savannah is the Program Manager for Pylance at Microsoft.

7 comments

Discussion is closed. Login to edit/delete existing comments.

  • Jatin V

    Thanks for sharing!!
    This is really helps us for Python training in Pune. Python programming makes more easy with visual studio code. Keep sharing new updates.

  • Jonathan B.

    Awesome update thanks so much! This held me back switching from Pyhcarm to VS-Code.

    Short question / Feature Request: is it possible to configure the green "Run Python File in Terminal" so that it runs the whole code in the Interactive Window instead of the Terminal? I know I can also hit "Run Below" above my first code cell to achieve the same but some of my files don't have cells and hitting the green triangle...

    Read more
  • Wayne McDermott

    Thanks very much for the update.

  • Malan Thangavelu

    Hi, this is new to learn. I will keep on following you. Do you provide python certification like cloud council ?

  • Abasido Ferdinand

    That is nice but while is rust not implemented in vs

    • Mike O'Leary

      Can you share which library has been used in your function overload example? My understanding is the python devs opted against implementing overloading of a function, particularly overloading based on arguments types. I expect I need to use this particular library as my own implementation may not change the functions signature in the virtual namespace as is expected by pylance?

    • Cem Ozugur

      love how off topic people can get sometimes.

      Great addition to the plugin! Thanks for the update.