From 80b5384a4df910be7082e6e45cffabd5b36eda87 Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Fri, 23 Aug 2024 15:03:38 -0500 Subject: [PATCH] Set `VIRTUAL_ENV` for `uv run` invocations (#6543) If we don't do this, and `uv run` invokes something like `uv run --isolated uv pip install foo` uv won't mutate the isolated environment, it'll mutate whatever outer environment it finds. --- crates/uv/src/commands/project/run.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crates/uv/src/commands/project/run.rs b/crates/uv/src/commands/project/run.rs index 38964b63e..d4c8303e4 100644 --- a/crates/uv/src/commands/project/run.rs +++ b/crates/uv/src/commands/project/run.rs @@ -629,6 +629,11 @@ pub(crate) async fn run( )?; process.env("PATH", new_path); + // Ensure `VIRTUAL_ENV` is set. + if interpreter.is_virtualenv() { + process.env("VIRTUAL_ENV", interpreter.sys_prefix().as_os_str()); + }; + // Spawn and wait for completion // Standard input, output, and error streams are all inherited // TODO(zanieb): Throw a nicer error message if the command is not found