diff --git a/src/client/pythonEnvironments/nativeAPI.ts b/src/client/pythonEnvironments/nativeAPI.ts
index 2d13500fdcd8..31ad80608283 100644
--- a/src/client/pythonEnvironments/nativeAPI.ts
+++ b/src/client/pythonEnvironments/nativeAPI.ts
@@ -55,6 +55,10 @@ function toArch(a: string | undefined): Architecture {
 }
 
 function getLocation(nativeEnv: NativeEnvInfo, executable: string): string {
+    if (nativeEnv.kind === NativePythonEnvironmentKind.Conda) {
+        return nativeEnv.prefix ?? path.dirname(executable);
+    }
+
     if (nativeEnv.executable) {
         return nativeEnv.executable;
     }
@@ -206,6 +210,32 @@ function toPythonEnvInfo(nativeEnv: NativeEnvInfo): PythonEnvInfo | undefined {
     };
 }
 
+function hasChanged(old: PythonEnvInfo, newEnv: PythonEnvInfo): boolean {
+    if (old.executable.filename !== newEnv.executable.filename) {
+        return true;
+    }
+    if (old.version.major !== newEnv.version.major) {
+        return true;
+    }
+    if (old.version.minor !== newEnv.version.minor) {
+        return true;
+    }
+    if (old.version.micro !== newEnv.version.micro) {
+        return true;
+    }
+    if (old.location !== newEnv.location) {
+        return true;
+    }
+    if (old.kind !== newEnv.kind) {
+        return true;
+    }
+    if (old.arch !== newEnv.arch) {
+        return true;
+    }
+
+    return false;
+}
+
 class NativePythonEnvironments implements IDiscoveryAPI, Disposable {
     private _onProgress: EventEmitter<ProgressNotificationEvent>;
 
@@ -354,7 +384,7 @@ class NativePythonEnvironments implements IDiscoveryAPI, Disposable {
         const info = toPythonEnvInfo(native);
         if (info) {
             const old = this._envs.find((item) => item.executable.filename === info.executable.filename);
-            if (old) {
+            if (old && hasChanged(old, info)) {
                 this._envs = this._envs.filter((item) => item.executable.filename !== info.executable.filename);
                 this._envs.push(info);
                 this._onChanged.fire({ type: FileChangeType.Changed, old, new: info, searchLocation });
diff --git a/src/test/pythonEnvironments/nativeAPI.unit.test.ts b/src/test/pythonEnvironments/nativeAPI.unit.test.ts
index 088a44a0c1a3..f7f956c7a20e 100644
--- a/src/test/pythonEnvironments/nativeAPI.unit.test.ts
+++ b/src/test/pythonEnvironments/nativeAPI.unit.test.ts
@@ -108,7 +108,7 @@ suite('Native Python API', () => {
             mtime: -1,
         },
         kind: PythonEnvKind.Conda,
-        location: '/home/user/.conda/envs/conda_python/python',
+        location: '/home/user/.conda/envs/conda_python',
         source: [],
         name: 'conda_python',
         type: PythonEnvType.Conda,