After rebuilding my dev container today vscode stopped finding my uv-created venv interpreter. Uninstalling/disabling this extension immediately fixes it, reproduced multiple times across fresh no-cache rebuilds.
This extension gets pulled in as part of ms-python.python, so it was already installed without me explicitly adding it.
Setup
devcontainer.json (simplified):
{
"image": "mcr.microsoft.com/devcontainers/python:3.14",
"features": {
"ghcr.io/devcontainers-extra/features/uv:1": {}
},
"postCreateCommand": "uv sync --extra dev",
"customizations": {
"vscode": {
"extensions": ["ms-python.python"]
}
}
}
pyproject.toml (simplified):
[project]
requires-python = ">=3.14"
[project.optional-dependencies]
dev = [
"ruff",
"pylint",
"pylint-pydantic",
"pre-commit",
"cfn-lint",
]
[tool.setuptools]
package-dir = { "" = "." }
[tool.uv]
python-preference = "system"
Venv is created by uv sync at .venv/ at the repo root. Both of these interpreter path settings fail (workspace settings under .vscode/settings.json):
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python"
"python.defaultInterpreterPath": ".venv/bin/python"
Reproduce
Can't give a minimal repro since this is a cut-down version of my actual setup, but roughly:
- Build the devcontainer above (with this extension installed via
ms-python.python)
- Open VS Code, interpreter at
.venv/bin/python isn't found
- Uninstall/disable this extension and reload the window, interpreter works fine
Potential root cause
uv symlinks the Python binary inside the venv instead of copying it, see astral-sh/uv#2103 and astral-sh/uv#6782. This extension might not be resolving those symlinks correctly, causing detection to silently fail. The old ms-python.python worked fine on my previous devcontainer rebuild a week or two ago, so this extension seems to be the regression. Possibly related to microsoft/vscode-python#14592 as well.
Workaround
Set "python.useEnvironmentsExtension": false in .vscode/settings.json:
// Make VS Code use the uv-created venv
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
// This extension breaks the above setting
"python.useEnvironmentsExtension": false,
After rebuilding my dev container today vscode stopped finding my uv-created venv interpreter. Uninstalling/disabling this extension immediately fixes it, reproduced multiple times across fresh no-cache rebuilds.
This extension gets pulled in as part of
ms-python.python, so it was already installed without me explicitly adding it.Setup
devcontainer.json (simplified):
{ "image": "mcr.microsoft.com/devcontainers/python:3.14", "features": { "ghcr.io/devcontainers-extra/features/uv:1": {} }, "postCreateCommand": "uv sync --extra dev", "customizations": { "vscode": { "extensions": ["ms-python.python"] } } }pyproject.toml (simplified):
Venv is created by
uv syncat.venv/at the repo root. Both of these interpreter path settings fail (workspace settings under.vscode/settings.json):Reproduce
Can't give a minimal repro since this is a cut-down version of my actual setup, but roughly:
ms-python.python).venv/bin/pythonisn't foundPotential root cause
uv symlinks the Python binary inside the venv instead of copying it, see astral-sh/uv#2103 and astral-sh/uv#6782. This extension might not be resolving those symlinks correctly, causing detection to silently fail. The old
ms-python.pythonworked fine on my previous devcontainer rebuild a week or two ago, so this extension seems to be the regression. Possibly related to microsoft/vscode-python#14592 as well.Workaround
Set
"python.useEnvironmentsExtension": falsein.vscode/settings.json: