Skip to content

Auto-activating a venv in every new terminal should be opt-in, not opt-on-by-default #26094

Description

@jorgen-k

Title: Auto-activating a venv in every new terminal should be opt-in, not opt-on-by-default

Body:

python.terminal.activateEnvironment defaults to true, so as soon as the extension detects a virtual environment anywhere in a workspace, it silently runs a source .../activate in every new integrated terminal, and prints that command as if the user had typed it.

I understand this is documented and technically "working as intended." That's not the same as being the right default. The requirement itself is the problem, not the implementation of it.

The integrated terminal is shared infrastructure. It's used for git, Docker, other language toolchains, ad-hoc shell scripts, none of which have anything to do with Python. Mutating that shell's environment on every single new terminal, without being asked, is a side effect most users did not opt into. It just happens because a .venv folder exists somewhere in the workspace.

If some users want this, that's a fine feature to offer, but it should be something they turn on, not something they have to discover and turn off after wondering why their shell has an unexpected source line in it. Opt-in preserves the feature for people who want it without imposing it on everyone else who has a venv anywhere in their repo.

Ask: flip the default to python.terminal.activateEnvironment: false, or at minimum make the first auto-activation an explicit, dismissible prompt instead of a silent shell mutation.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions