--- a/Preferences/__init__.py Thu Jun 14 19:19:15 2018 +0200 +++ b/Preferences/__init__.py Thu Jun 14 19:20:52 2018 +0200 @@ -92,6 +92,8 @@ "SuppressClientExit": False, "BreakAlways": False, "ShowExceptionInShell": True, + "Python2VirtualEnv": "", + "Python3VirtualEnv": "", "PythonInterpreter": "", "Python3Interpreter": "", "RubyInterpreter": "", @@ -1797,34 +1799,27 @@ prefClass.settings.value( "Debugger/" + key, prefClass.debuggerDefaults[key])) elif key in ["PythonInterpreter", "Python3Interpreter"]: - interpreter = \ - prefClass.settings.value( - "Debugger/" + key, prefClass.debuggerDefaults[key]) + # This code is here to ensure backward compatibility. + if key == "PythonInterpreter": + newKey = "Python2VirtualEnv" + else: + newKey = "Python3VirtualEnv" + venvName = prefClass.settings.value( + "Debugger/" + newKey, prefClass.debuggerDefaults[newKey]) + if venvName: + try: + from E5Gui.E5Application import e5App + virtualenvManager = e5App().getObject("VirtualEnvManager") + except KeyError: + from VirtualEnv.VirtualenvManager import VirtualenvManager + virtualenvManager = VirtualenvManager() + interpreter = virtualenvManager.getVirtualenvInterpreter(venvName) + else: + interpreter = "" if not interpreter: pyVersion = 2 if key == "PythonInterpreter" else 3 if sys.version_info[0] == pyVersion: return sys.executable - - interpreters = findPythonInterpreters(pyVersion) - if interpreters: - if len(interpreters) == 1: - interpreter = interpreters[0] - else: - selection, ok = QInputDialog.getItem( - None, - QCoreApplication.translate( - "Preferences", - "Select Python{0} Interpreter").format(pyVersion), - QCoreApplication.translate( - "Preferences", - "Select the Python{0} interpreter to be used:") - .format(pyVersion), - interpreters, - 0, False) - if ok and selection != "": - interpreter = selection - if interpreter: - setDebugger(key, interpreter) return interpreter elif key in ["DebugClientType", "DebugClientType3"]: debugClientType = prefClass.settings.value(