Utilities/BackgroundService.py

changeset 6367
7bc6fc02d981
parent 6348
d6c0b8ab1fc6
child 6373
739683aacc4a
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):
         """

eric ide

mercurial