Python in Visual Studio Code – October 2019 Release

Luciana Abud

We are pleased to announce that the October 2019 release of the Python Extension for Visual Studio Code is now available. You can download the Python extensionfrom 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 97 issues, including native editing of Jupyter Notebooks, a button to run Python file in the terminal, and linting and import improvements with the Python Language Server. The full list of enhancements is listed in ourchangelog. 

Native editing of Jupyter Notebooks 

We’re excited to announce the first release of native editing of Jupyter notebooks inside VS Code! The native Jupyter experience brings a new way for both data scientists and notebook developers alike to directly edit .ipynb files and get the interactivity of Jupyter notebooks with all of the power of VS Code. You can check the Native Support for Editing Jupyter Notebooks in VS Code blog post to learn more about this feature and how to get started.

Run Python File in Terminal button 

This release includes a play” button to run the Run Python File in Terminal command. Now it only takes one click to run Python files with the Python extension!  

The new button is located on the top-right side of the editor, matching the behavior of the Code Runner extension: 

If you’re into key bindings, you can also customize your own keyboard shortcut to run Python files in the terminal, by running the Preferences: Open Keyboard Shortcuts (JSON) command in the command palette (View Command Palette…) and entering a key binding for the python.execInTerminal command as you prefer. For example, you could have the following definition to run Python files in the terminal with a custom shortcut: 

If the Code Runner extension is enabled, the Python extension doesn’t display this button in order to avoid possible confusion. 

Linting and import improvements with the Python Language Server 

This release also includes three new linting rules with the Python Language Server, as well as significant improvements to autocompletion for packages such as PyTorch and pandas.

Additionally, there have been large improvements made to import resolution. Historically the Language Server has treated the workspace root as the sys.path entry (i.e. the main workspace root) of user module imports, which led to false-positive unresolved imports warnings when importing modules from a src directory. With this release, if there’s such a src directory in the project’s environment, the Language Server automatically detects and adds the directory to its list of search paths. You can refer to the documentation to learn more about configuring search paths for the Language Server. 

Other Changes and Enhancements 

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: 

  • Fix for test discovery issues with pytest 5.1+. (#6990) 
  • Fixes for detecting the shell. (#6928) 
  • Opt insiders users into the Beta version of the Language Server by default. (#7108) 
  • Replaced occurrences of pep8 with pycodestyle. All mentions of pep8 have been replaced with pycodestyle (thanks Marsfan). (#410) 

We are continuing to A/B test 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 from 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, please file an issue on the Python VS Code GitHub page. 





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

  • Nikhil GopalMicrosoft employee 0

    This is awesome! Can I use VSCode to edit ipynbs on databricks?

  • Hiroaki Matsumoto 0

    Hi Luciana,

    I have trouble with stopping a running cell.
    Could you show me hot to kill or stop the working cell??

    • IanHuff - MSFTMicrosoft employee 0

      @Hiroaki Matsumoto. Sorry about the late reply. Didn’t see your comment at first. If you want to stop and executing cell look for the red stop button in the top toolbar of the Native Editor. The tool tip should be “Interrupt IPython kernel.” Hitting that should stop any currently executing cell.

      • Hiroaki Matsumoto 0

        Thank you! I didn’t realized!

Feedback usabilla icon