--- a/src/eric7/VirtualEnv/VirtualenvManager.py Wed Nov 29 11:33:32 2023 +0100 +++ b/src/eric7/VirtualEnv/VirtualenvManager.py Wed Nov 29 14:27:25 2023 +0100 @@ -20,7 +20,7 @@ from eric7 import Preferences from eric7.EricWidgets import EricMessageBox from eric7.EricWidgets.EricApplication import ericApp -from eric7.SystemUtilities import FileSystemUtilities, PythonUtilities +from eric7.SystemUtilities import FileSystemUtilities, OSUtilities, PythonUtilities from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog from .VirtualenvMeta import VirtualenvMetaData @@ -479,6 +479,33 @@ self.virtualEnvironmentRemoved.emit() self.virtualEnvironmentsListChanged.emit() + def searchUnregisteredInterpreters(self): + """ + Public method to search for unregistered Python interpreters. + + @return list of unregistered interpreters + @rtype list of str + """ + interpreters = [] + baseDir = self.getVirtualEnvironmentsBaseDir() + if not baseDir: + # search in home directory, if no environments base directory is defined + baseDir = OSUtilities.getHomeDir() + environments = [ + os.path.join(baseDir, d) + for d in os.listdir(baseDir) + if os.path.isdir(os.path.join(baseDir, d)) + ] + + interpreters = PythonUtilities.searchInterpreters() + if environments: + interpreters += PythonUtilities.searchInterpreters(environments) + + interpreters = { + i for i in interpreters if not self.environmentForInterpreter(i)[0] + } # filter the list into a set to make the remaining ones unique + return list(interpreters) + def getEnvironmentEntries(self): """ Public method to get a list of the defined virtual environment entries.