From: Serhiy Storchaka Date: Wed, 22 Jul 2026 04:05:10 +0000 (+0300) Subject: gh-154399: Fix venv activate.csh in a non-interactive shell (GH-154400) X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=4448705d879ea41ea97114ef6c8215590913811a;p=thirdparty%2FPython%2Fcpython.git gh-154399: Fix venv activate.csh in a non-interactive shell (GH-154400) activate.csh saved the prompt unconditionally, but the prompt variable only exists in interactive shells, and csh fails on an undefined variable. Co-authored-by: Claude Opus 4.8 --- diff --git a/Lib/venv/scripts/posix/activate.csh b/Lib/venv/scripts/posix/activate.csh index 2a3fa835476a..7226034df0f3 100644 --- a/Lib/venv/scripts/posix/activate.csh +++ b/Lib/venv/scripts/posix/activate.csh @@ -16,10 +16,12 @@ setenv PATH "$VIRTUAL_ENV/"__VENV_BIN_NAME__":$PATH" setenv VIRTUAL_ENV_PROMPT __VENV_PROMPT__ -set _OLD_VIRTUAL_PROMPT="$prompt" +if ($?prompt) then + set _OLD_VIRTUAL_PROMPT="$prompt" -if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then - set prompt = "("__VENV_PROMPT__") $prompt:q" + if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then + set prompt = "("__VENV_PROMPT__") $prompt:q" + endif endif alias pydoc python -m pydoc diff --git a/Misc/NEWS.d/next/Library/2026-07-21-21-36-59.gh-issue-154399.VSa6oH.rst b/Misc/NEWS.d/next/Library/2026-07-21-21-36-59.gh-issue-154399.VSa6oH.rst new file mode 100644 index 000000000000..598dd26694c7 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-07-21-21-36-59.gh-issue-154399.VSa6oH.rst @@ -0,0 +1,3 @@ +Fix :mod:`venv` activation in a non-interactive csh: +``activate.csh`` no longer fails +when the ``prompt`` variable is not set.