src/eric7/VirtualEnv/VirtualenvManager.py

branch
eric7
changeset 9506
62397ab8df8c
parent 9482
a2bc06a54d9d
child 9556
b90938c52816
diff -r 2cef38eac83c -r 62397ab8df8c src/eric7/VirtualEnv/VirtualenvManager.py
--- a/src/eric7/VirtualEnv/VirtualenvManager.py	Fri Nov 11 15:58:13 2022 +0100
+++ b/src/eric7/VirtualEnv/VirtualenvManager.py	Fri Nov 11 17:14:21 2022 +0100
@@ -37,6 +37,7 @@
     """
 
     DefaultKey = "<default>"
+    SystemKey = "<system>"
 
     virtualEnvironmentAdded = pyqtSignal()
     virtualEnvironmentRemoved = pyqtSignal()
@@ -111,7 +112,9 @@
             # only check for a non-embedded environment
             found = False
             for venvName in self.__virtualEnvironments:
-                if defaultPy == self.__virtualEnvironments[venvName]["interpreter"]:
+                if os.path.samefile(
+                    defaultPy, self.__virtualEnvironments[venvName]["interpreter"]
+                ):
                     found = True
                     break
             if not found:
@@ -183,9 +186,14 @@
         """
         py = interpreter.replace("w.exe", ".exe")
         for venvName in self.__virtualEnvironments:
-            if py == self.__virtualEnvironments[venvName]["interpreter"]:
+            if os.path.samefile(
+                py, self.__virtualEnvironments[venvName]["interpreter"]
+            ):
                 return (venvName, copy.copy(self.__virtualEnvironments[venvName]))
 
+        if os.path.samefile(interpreter, sys.executable):
+            return (VirtualenvManager.SystemKey, {})
+
         return ("", {})
 
     @pyqtSlot()
@@ -605,6 +613,8 @@
             return self.__virtualEnvironments[venvName]["interpreter"].replace(
                 "w.exe", ".exe"
             )
+        elif venvName == VirtualenvManager.SystemKey:
+            return sys.executable
         else:
             return ""
 

eric ide

mercurial