65 |
65 |
66 port = self.serverPort() |
66 port = self.serverPort() |
67 ## Note: Need the port if started external in debugger: |
67 ## Note: Need the port if started external in debugger: |
68 print('BackgroundService listening on: {0:d}'.format(port)) |
68 print('BackgroundService listening on: {0:d}'.format(port)) |
69 # __IGNORE_WARNING__ |
69 # __IGNORE_WARNING__ |
70 for pyName in ['Python2', 'Python3']: |
70 venvName = Preferences.getDebugger("Python3VirtualEnv") |
71 venvName = Preferences.getDebugger( |
71 interpreter = e5App().getObject( |
72 pyName + "VirtualEnv") |
72 "VirtualEnvManager").getVirtualenvInterpreter(venvName) |
73 interpreter = e5App().getObject( |
73 if not interpreter: |
74 "VirtualEnvManager").getVirtualenvInterpreter(venvName) |
74 interpreter = sys.executable.replace("w.exe", ".exe") |
75 if not interpreter and int(pyName[-1]) == sys.version_info[0]: |
75 if interpreter: |
76 interpreter = sys.executable.replace("w.exe", ".exe") |
76 process = self.__startExternalClient(interpreter, port) |
77 if interpreter: |
77 if process: |
78 process = self.__startExternalClient(interpreter, port) |
78 self.processes['Python3'] = process, interpreter |
79 if process: |
|
80 self.processes[pyName] = process, interpreter |
|
81 |
79 |
82 def __startExternalClient(self, interpreter, port): |
80 def __startExternalClient(self, interpreter, port): |
83 """ |
81 """ |
84 Private method to start the background client as external process. |
82 Private method to start the background client as external process. |
85 |
83 |
245 |
243 |
246 def preferencesOrProjectChanged(self): |
244 def preferencesOrProjectChanged(self): |
247 """ |
245 """ |
248 Public slot to restart the built in languages. |
246 Public slot to restart the built in languages. |
249 """ |
247 """ |
250 for pyName in ['Python2', 'Python3']: |
248 venvName = Preferences.getDebugger("Python3VirtualEnv") |
251 venvName = Preferences.getDebugger( |
249 interpreter = e5App().getObject( |
252 pyName + "VirtualEnv") |
250 "VirtualEnvManager").getVirtualenvInterpreter(venvName) |
253 interpreter = e5App().getObject( |
251 if not interpreter: |
254 "VirtualEnvManager").getVirtualenvInterpreter(venvName) |
252 interpreter = sys.executable.replace("w.exe", ".exe") |
255 if not interpreter and int(pyName[-1]) == sys.version_info[0]: |
253 |
256 interpreter = sys.executable.replace("w.exe", ".exe") |
254 # Tweak the processes list to reflect the changed interpreter |
257 |
255 proc, inter = self.processes.pop('Python3', [None, None]) |
258 # Tweak the processes list to reflect the changed interpreter |
256 self.processes['Python3'] = proc, interpreter |
259 proc, inter = self.processes.pop(pyName, [None, None]) |
257 |
260 self.processes[pyName] = proc, interpreter |
258 self.restartService('Python3') |
261 |
|
262 self.restartService(pyName) |
|
263 |
259 |
264 def restartService(self, language, forceKill=False): |
260 def restartService(self, language, forceKill=False): |
265 """ |
261 """ |
266 Public method to restart a given lanuage. |
262 Public method to restart a given lanuage. |
267 |
263 |