News

VS Code Python Update Tweaks Interpreter Path Functionality

The May 2020 update of Visual Studio Code's Python extension -- by far the most popular tool in the marketplace -- is mostly routine with a lot of fixes and minor tweaks, though developers showed interest in changes to interpreter path functionality.

For one, the new update provides the ability to browse for an interpreter path in order to help developers select or change interpreters -- or enter it manually.

This functionality dates back to November 2017 in an issue opened by Python guru Don Jayamanne, who originally created the extension and then was scooped up by Microsoft as part of its effort to go all in on Python for VS Code, which has been cited as the No. 1 development tool in major surveys.

 Interpreter Selection in Animated Action
[Click on image for larger, animated GIF view.] Interpreter Selection in Animated Action (source: Microsoft).

But that's not all of the "pathiness" coming up for VS Code, as an upcoming change will move python.pythonPath out of the settings.json configuration file, which can cause issues when workspace settings are shared, such as in a GitHub repository. This coming change prompted some comments from developers.

This issue dates back to July 2018:

Be default, a local pipenv environemnt is searched for and if found, is marked as the python interpreter. But it also then adds a line to settings.json indicating the path for the virtual environment which can cause issues for configs shared among a team. The python.pythonPath variable will not be constant for each user working on the repo (eg "python.pythonPath": "/home/daniel/.local/share/virtualenvs/ontariofresh_backend-NQNAEc6t/bin/python", note my home directory in the path) and thus prevents the settings.json file from being committed to the remote repository.

Ideally, it would behave just as it does now, but just implicitly sets the python interpreter as the one found without explicitly writing it out to settings.json.

As detailed in a May 12 announcement post by Luciana de Melo e Abud, program manager, the way the extension handles Python interpreter selection will be changed. "In order to make the interpreter information system agnostic and prevent sharing the interpreter path (which commonly won't be the same across different machines), we're going to deprecate the python.pythonPath setting in the Python extension," she said.

To be introduced gradually as an experiment, the new functionality can be accessed by opting in via User settings.

Some developers commented on the path changes:

  • I am just adding my .vscode directory to .gitignore anyway. Why should we share IDE settings in a repository? Weird change but I guess there is some use case.
  • pythonPath is perfect for everyone who uses venv instead of pipenv and it works with WSL on Windows.
  • I don't agree that discontinuing interpreter configuration in vscode config is useful. You can already apply it in user settings instead of project. Adding it to the project is just an option that people can easily skip.
  • In total, the May 2020 update addresses 42 issues, including 23 bug fixes, all of which are listed in the changelog.

    The Python extension in the VS Code marketplace is nearing 20 million installations, earning an average 4.4 rating (scale to 5) from 314 developers who reviewed it. The second-most-popular item, C/C++, is at about 11.3 million installations.

    About the Author

    David Ramel is an editor and writer for Converge360.

    comments powered by Disqus

    Featured

    • ML.NET Improves Object Detection

      Microsoft improved the object detection capabilities of its ML.NET machine learning framework for .NET developers, adding the ability to train custom models with Model Builder in Visual Studio.

    • More Improvements for VS Code's New Python Language Server

      Microsoft announced more improvements for the new Python language server for Visual Studio Code, Pylance, specializing in rich type information.

    • Death of the Dev Machine?

      Here's a takeaway from this week's Ignite 2020 event: An advanced Azure cloud portends the death of the traditional, high-powered dev machine packed with computing, memory and storage components.

    • COVID-19 Is Ignite 2020's Elephant in the Room: 'Frankly, It Sucks'

      As in all things of our new reality, there was no escaping the drastic changes in routine caused by the COVID-19 pandemic during Microsoft's big Ignite 2020 developer/IT pro conference, this week shifted to an online-only event after drawing tens of thousands of in-person attendees in years past.

    • Visual Studio 2019 v16.8 Preview Update Adds Codespaces

      To coincide with the Microsoft Ignite 2020 IT pro/developer event, the Visual Studio dev team shipped a new update, Visual Studio 2019 v16.8 Preview 3.1, with the main attraction being support for cloud-hosted Codespaces, now in a limited beta.

    Upcoming Events