diff -r 6c1cd7e2902a -r 7bc6fc02d981 Utilities/BackgroundService.py --- a/Utilities/BackgroundService.py Sun Jun 24 13:51:26 2018 +0200 +++ b/Utilities/BackgroundService.py Mon Jun 25 18:20:06 2018 +0200 @@ -73,6 +73,8 @@ pyName + "VirtualEnv") interpreter = e5App().getObject("VirtualEnvManager")\ .getVirtualenvInterpreter(venvName) + if not interpreter and int(pyName[-1]) == sys.version_info[0]: + interpreter = sys.executable if interpreter: process = self.__startExternalClient(interpreter, port) if process: @@ -247,12 +249,13 @@ """ Public slot to restart the built in languages. """ - for pyName in ['Python', 'Python3']: - interpreter = Preferences.getDebugger( - pyName + "Interpreter") - - if pyName == 'Python': - pyName = 'Python2' + for pyName in ['Python2', 'Python3']: + venvName = Preferences.getDebugger( + pyName + "VirtualEnv") + interpreter = e5App().getObject("VirtualEnvManager")\ + .getVirtualenvInterpreter(venvName) + if not interpreter and int(pyName[-1]) == sys.version_info[0]: + interpreter = sys.executable # Tweak the processes list to reflect the changed interpreter proc, inter = self.processes.pop(pyName, [None, None]) @@ -284,10 +287,11 @@ if proc: proc.close() - port = self.serverPort() - process = self.__startExternalClient(interpreter, port) - if process: - self.processes[language] = process, interpreter + if interpreter: + port = self.serverPort() + process = self.__startExternalClient(interpreter, port) + if process: + self.processes[language] = process, interpreter def enqueueRequest(self, fx, lang, fn, data): """