eric6/Utilities/BackgroundService.py

changeset 7635
0cdead130a81
parent 7630
4010cc7e9c0b
child 7781
607a6098cb44
equal deleted inserted replaced
7634:8c3d033e5044 7635:0cdead130a81
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

eric ide

mercurial