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


    • AI for GitHub Collaboration? Maybe Not So Much

      No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

    • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

      As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

    • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

      Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

    • Data Anomaly Detection Using a Neural Autoencoder with C#

      Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

    • What's New for Python, Java in Visual Studio Code

      Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

    Subscribe on YouTube