diff --git a/src/client/pythonEnvironments/base/info/env.ts b/src/client/pythonEnvironments/base/info/env.ts index b77acde5333d..930a522ef1e9 100644 --- a/src/client/pythonEnvironments/base/info/env.ts +++ b/src/client/pythonEnvironments/base/info/env.ts @@ -276,14 +276,20 @@ export function areSameEnv( if (leftInfo === undefined || rightInfo === undefined) { return undefined; } - const leftFilename = leftInfo.executable!.filename; - const rightFilename = rightInfo.executable!.filename; - + if ( + (leftInfo.executable?.filename && !rightInfo.executable?.filename) || + (!leftInfo.executable?.filename && rightInfo.executable?.filename) + ) { + return false; + } if (leftInfo.id && leftInfo.id === rightInfo.id) { // In case IDs are available, use it. return true; } + const leftFilename = leftInfo.executable!.filename; + const rightFilename = rightInfo.executable!.filename; + if (getEnvID(leftFilename, leftInfo.location) === getEnvID(rightFilename, rightInfo.location)) { // Otherwise use ID function to get the ID. Note ID returned by function may itself change if executable of // an environment changes, for eg. when conda installs python into the env. So only use it as a fallback if