microsoft / microsoft/vscode-python-environments

Wrong interpreter is used in tasks.json, if other variables are used in task

Đang mở
#1,659 6 bình luận 0 reaction 1 người được giao Xem trên GitHub

@eleanorjboyd đang làm issue này rồi.

Từ ngày 5/8/2026.

bug
Ngôn ngữ chính
TypeScript
Star
138
Fork
62
Merge trung bình
1 ngày 4 giờ
Pull request đã merge (30 ngày)
35

Mô tả

## Environment data

- Python Environments extension version: 1.36.0
- Python extension version: 2026.4.0
- VS Code version: 1.130.0 (user)
- OS and version: Windows 11 Enterprise 25H2
- Python version: 3.14.6 (installed using Python Install Manager)
- Environment manager in use: uv 0.11.29
- Shell: pwsh
- Remote / container scenario: none
- Workspace type: singe folder
- Is this a regression? If yes, last known working extension version: unknown

## Repro Steps

1. Create an empty workspace
2. Make sure that `python.useEnvironmentsExtension` is `true`
3. Create an virtual environment in it (e.g. `uv init; uv sync` or `python -mvenv .venv`)
4. Select the virtual environment as Python interpreter for the workspace (Ctrl-Shift-P => Python: Select interpreter)
5. Add this .vscode/tasks.json
```json
{
"version": "2.0.0",
"tasks": [
{
"label": "Test (args): OK",
"type": "shell",
"command": "${command:python.interpreterPath}",
"args": ["-c", "import sys; print(sys.executable)", "Dummy"],
"group": {"kind": "build"}
}, {
"label": "Test (args): ERROR (input)",
"type": "shell",
"command": "${command:python.interpreterPath}",
"args": ["-c", "import sys; print(sys.executable)", "${input:Dummy}"],
"group": {"kind": "build"}
}, {
"label": "Test (args): ERROR (env)",
"type": "shell",
"command": "${command:python.interpreterPath}",
"args": ["-c", "import sys; print(sys.executable)", "${env:DUMMY}"],
"group": {"kind": "build"}
}, {
"label": "Test (cmd): OK",
"type": "shell",
"command": "${command:python.interpreterPath} -c 'import sys; print(sys.executable)'",
"group": {"kind": "build"}
}, {
"label": "Test (cmd): ERROR (env)",
"type": "shell",
"command": "${command:python.interpreterPath} -c 'import sys; print(sys.executable)' '${env:DUMMY}'",
"group": {"kind": "build"}
}
],
"inputs": [
{
"id": "Dummy",
"type": "promptString",
"description": "Dummy string for demonstration",
"default": "Dummy"
}
]
}
```
6. Run the different build tasks

## Expected behaviour

All tasks should use (and output) Python binary from the virtual environment (e.g. `D:\src\vscode-bug\.venv\Scripts\python.exe`)

## Actual behavior

All tasks (labelled … OK) without additional variables in the `command` or `args` run as expected using the Python interpreter from the .venv for `${command:python.interpreterPath}`.

All tasks (labelled … ERROR) with additional variables in the `command` or `args` run using the GLOBAL Python interpreter for `${command:python.interpreterPath}`.
Neither the user nor the workspace setting for `python.defaultInterpreterPath` are used.
Image

## Logs

### Error case

Running task "Test (args): ERROR (env)"

#### Python Environments Trace

```log
2026-07-24 16:34:47.720 [debug] Checking venv (ms-python.python:venv) for d:\src\vscode-bug\.venv\Scripts\python.exe
2026-07-24 16:34:47.721 [debug] Using venv (ms-python.python:venv) to handle d:\src\vscode-bug\.venv\Scripts\python.exe
2026-07-24 16:34:50.060 [debug] inlineScriptLazyDetector: event received (open) output:ms-python.vscode-python-envs.Python%20Environments.log
2026-07-24 16:34:50.060 [debug] inlineScriptLazyDetector: skipped (open) output:ms-python.vscode-python-envs.Python%20Environments.log (scheme='output', extname='.log', inWorkspace=false)
```

#### Python Trace
```log
2026-07-24 16:34:47.800 [debug] Extension unknown accessed getActiveEnvironmentPath with args: undefined
2026-07-24 16:34:47.800 [debug] Extension unknown accessed resolveEnvironment with args: {"id":"D:\\SRC\\VSCODE-BUG\\.VENV\\SCRIPTS\\PYTHON.EXE","path":"d:\\src\\vscode-bug\\.venv\\Scripts\\python.exe"}
```

#### Task output
```log
* Executing task: C:\Users\MyUserName\AppData\Local\Python\pythoncore-3.14-64\python.exe -c 'import sys; print(sys.executable)'

C:\Users\MyUserName\AppData\Local\Python\pythoncore-3.14-64\python.exe
* Terminal will be reused by tasks, press any key to close it.
```

### Good case

Running task "Test (args): OK"

#### Python Environments Trace
```log
2026-07-24 16:33:56.467 [debug] Checking venv (ms-python.python:venv) for d:\src\vscode-bug\.venv\Scripts\python.exe
2026-07-24 16:33:56.467 [debug] Using venv (ms-python.python:venv) to handle d:\src\vscode-bug\.venv\Scripts\python.exe
2026-07-24 16:33:58.000 [debug] inlineScriptLazyDetector: event received (open) output:ms-python.vscode-python-envs.Python%20Environments.log
2026-07-24 16:33:58.000 [debug] inlineScriptLazyDetector: skipped (open) output:ms-python.vscode-python-envs.Python%20Environments.log (scheme='output', extname='.log', inWorkspace=false)
```

#### Python Trace
```log
2026-07-24 16:33:56.613 [debug] Extension unknown accessed getActiveEnvironmentPath with args: undefined
2026-07-24 16:33:56.613 [debug] Extension unknown accessed resolveEnvironment with args: {"id":"D:\\SRC\\VSCODE-BUG\\.VENV\\SCRIPTS\\PYTHON.EXE","path":"d:\\src\\vscode-bug\\.venv\\Scripts\\python.exe"}
```

#### Task output
```log
* Executing task: d:\src\vscode-bug\.venv\Scripts\python.exe -c 'import sys; print(sys.executable)' Dummy

D:\src\vscode-bug\.venv\Scripts\python.exe
* Terminal will be reused by tasks, press any key to close it.
```

## Additional context
- Tasks a run as exepected, if `python.useEnvironmentsExtension` is set to `false`
- Seems to be related to the now closed issue #1235

### Python Environments Trace during VS Code startup
```log
2026-07-24 16:20:47.807 [info] Python-envs extension version: 1.36.0
2026-07-24 16:20:47.808 [info]
=== Python Envs Configuration Levels ===
2026-07-24 16:20:47.808 [info] {
"section": "Python Envs Configuration Levels",
"defaultEnvManager": {
"workspaceFolderValue": "undefined",
"workspaceValue": "undefined",
"globalValue": "undefined",
"defaultValue": "ms-python.python:venv"
},
"defaultPackageManager": {
"workspaceFolderValue": "undefined",
"workspaceValue": "undefined",
"globalValue": "undefined",
"defaultValue": "ms-python.python:pip"
}
}
2026-07-24 16:20:47.808 [info] [pet] Starting Python Locator c:\Users\MyUserName\.vscode\extensions\ms-python.vscode-python-envs-1.36.0-win32-x64\python-env-tools\bin\pet.exe server
2026-07-24 16:20:47.808 [info] Registering pyenv manager (environments will be discovered lazily)
2026-07-24 16:20:47.808 [info] Registering pipenv manager (environments will be discovered lazily)
2026-07-24 16:20:47.808 [info] Registering poetry manager (environments will be discovered lazily)
2026-07-24 16:20:47.808 [info] [pet] configure: Sending configuration update: {"workspaceDirectories":["d:\\src\\vscode-bug"],"environmentDirectories":["d:/src/vscode-bug/.venv","d:/src/vscode-bug/*/.venv"],"pipenvExecutable":"pipenv","poetryExecutable":"poetry","cacheDirectory":"c:\\Users\\MyUserName\\AppData\\Roaming\\Code\\User\\globalStorage\\ms-python.vscode-python-envs\\pythonLocator"}
2026-07-24 16:20:47.808 [info] Extension for manager ms-python.python:venv is not active: Activating...
2026-07-24 16:20:47.813 [error] [pet]  0.077059700s  WARN pet_windows_registry::environments: Failed to open HKLM\Software\Python, Os { code: 2, kind: NotFound, message: "The system cannot find the file specified." }

2026-07-24 16:20:47.816 [info] Discovered env: C:\Users\MyUserName\AppData\Local\Python\pythoncore-3.13-64\python.exe
2026-07-24 16:20:47.816 [info] Discovered env: C:\Users\MyUserName\AppData\Local\Python\pythoncore-3.14-64\python.exe
2026-07-24 16:20:47.834 [info] Discovered env: d:\src\vscode-bug\.venv\Scripts\python.exe
2026-07-24 16:20:47.866 [error] [pet]  0.131520500s ERROR pet_python_utils::env: Failed to spawn Python to resolve info "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python.exe.__target__": %1 is not a valid Win32 application. (os error 193)
 0.131563500s  WARN pet::find: Unknown Python Env "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python.exe.__target__"

2026-07-24 16:20:47.869 [error] [pet]  0.137766400s ERROR pet_python_utils::env: Failed to spawn Python to resolve info "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python3.13.exe.__target__": %1 is not a valid Win32 application. (os error 193)
 0.137799300s  WARN pet::find: Unknown Python Env "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python3.13.exe.__target__"

2026-07-24 16:20:47.876 [error] [pet]  0.145041700s ERROR pet_python_utils::env: Failed to spawn Python to resolve info "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python3.14.exe.__target__": %1 is not a valid Win32 application. (os error 193)
 0.145083400s  WARN pet::find: Unknown Python Env "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python3.14.exe.__target__"

2026-07-24 16:20:47.897 [info] Extension for manager ms-python.python:venv is now active.
2026-07-24 16:20:47.899 [error] [pet]  0.153364300s ERROR pet_python_utils::env: Failed to spawn Python to resolve info "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python3.exe.__target__": %1 is not a valid Win32 application. (os error 193)
 0.153397100s  WARN pet::find: Unknown Python Env "C:\\Users\\MyUserName\\AppData\\Local\\Python\\bin\\python3.exe.__target__"

2026-07-24 16:20:49.363 [info] Resolved environment during PET refresh: d:\src\vscode-bug\.venv\Scripts\python.exe
2026-07-24 16:20:49.425 [info] Found venv environment: .venv (3.14.6.final.0)
2026-07-24 16:20:49.474 [info] Resolved Python Environment C:\Users\MyUserName\AppData\Local\Python\pythoncore-3.13-64\python.exe
2026-07-24 16:20:50.544 [info] Conda not found, turning off conda features. [Error: Conda not found
at L (c:\Users\MyUserName\.vscode\extensions\ms-python.vscode-python-envs-1.36.0-win32-x64\dist\extension.js:2:629081)
at async V (c:\Users\MyUserName\.vscode\extensions\ms-python.vscode-python-envs-1.36.0-win32-x64\dist\extension.js:2:629206)
at async t.registerCondaFeatures (c:\Users\MyUserName\.vscode\extensions\ms-python.vscode-python-envs-1.36.0-win32-x64\dist\extension.js:2:648591)
at async t.safeRegister (c:\Users\MyUserName\.vscode\extensions\ms-python.vscode-python-envs-1.36.0-win32-x64\dist\extension.js:2:290365)
at async Promise.all (index 1)
at async Immediate. (c:\Users\MyUserName\.vscode\extensions\ms-python.vscode-python-envs-1.36.0-win32-x64\dist\extension.js:2:782813)]
2026-07-24 16:20:50.545 [info] [interpreterSelection] Applying initial environment selection for 1 workspace folder(s)
2026-07-24 16:20:50.554 [info] Python API: Changed environment from undefined to .venv (3.14.6.final.0) for: d:\src\vscode-bug
2026-07-24 16:20:50.554 [info] Internal: Changed environment from undefined to .venv (3.14.6.final.0) for: d:\src\vscode-bug
2026-07-24 16:20:50.555 [info] [interpreterSelection] vscode-bug: .venv (3.14.6.final.0) (source: autoDiscovery)
2026-07-24 16:20:50.555 [info] [interpreterSelection] Workspace env resolved, deferring global scope to background
2026-07-24 16:20:50.560 [info] Python API: Changed environment from undefined to Python 3.13.14 for: global
2026-07-24 16:20:50.561 [info] Internal: Changed environment from undefined to Python 3.13.14 for: global
2026-07-24 16:20:50.561 [info] [interpreterSelection] global: Python 3.13.14 (source: autoDiscovery)
2026-07-24 16:20:51.141 [info] Refreshing pyenv environments
2026-07-24 16:20:51.474 [info] Pipenv not found via settings, cache, or PATH
2026-07-24 16:20:51.475 [info] Refreshing pipenv environments
2026-07-24 16:20:51.539 [info] Pipenv not found via settings, cache, or PATH
2026-07-24 16:20:51.539 [info] Found 0 pipenv environments
2026-07-24 16:20:51.592 [info] Pipenv not found via settings, cache, or PATH
2026-07-24 16:20:51.648 [info] Refreshing poetry environments
2026-07-24 16:20:51.724 [info] Poetry executable not found
2026-07-24 16:20:51.774 [info] Environment discovery complete: 4 environments found (Global: 3, venv: 1)
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.