Consolidate logic for checking for a virtual environment (#14214)

We were checking whether a path was an executable in a virtual
environment or the base directory of a virtual environment in multiple
places in the codebase. This PR consolidates this logic into one place.

Closes #13947.
This commit is contained in:
John Mumm 2025-06-23 09:12:43 -04:00 committed by GitHub
parent a9a9e71481
commit 6481aa3e64
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 30 additions and 16 deletions

View file

@ -85,7 +85,7 @@ pub(crate) fn create(
} else if metadata.is_dir() {
if allow_existing {
debug!("Allowing existing directory");
} else if location.join("pyvenv.cfg").is_file() {
} else if uv_fs::is_virtualenv_base(location) {
debug!("Removing existing directory");
// On Windows, if the current executable is in the directory, guard against