2062 self.__projectLanguage = self.__e5project.getProjectLanguage() |
2062 self.__projectLanguage = self.__e5project.getProjectLanguage() |
2063 |
2063 |
2064 ok = False |
2064 ok = False |
2065 |
2065 |
2066 if self.__projectLanguage.startswith("Python"): |
2066 if self.__projectLanguage.startswith("Python"): |
|
2067 clientEnv = os.environ.copy() |
2067 try: |
2068 try: |
2068 # new code using virtual environments |
2069 # new code using virtual environments |
2069 venvManager = e5App().getObject("VirtualEnvManager") |
2070 venvManager = e5App().getObject("VirtualEnvManager") |
2070 |
2071 |
2071 # get virtual environment from project first |
2072 # get virtual environment from project first |
2095 else: |
2096 else: |
2096 venvName = "" |
2097 venvName = "" |
2097 if venvName: |
2098 if venvName: |
2098 interpreter = \ |
2099 interpreter = \ |
2099 venvManager.getVirtualenvInterpreter(venvName) |
2100 venvManager.getVirtualenvInterpreter(venvName) |
|
2101 |
|
2102 try: |
|
2103 execPath = venvManager.getVirtualenvExecPath(venvName) |
|
2104 except AttributeError: |
|
2105 # eric6 < 18.12 |
|
2106 execPath = "" |
|
2107 |
|
2108 # build a suitable environment |
|
2109 if execPath: |
|
2110 if "PATH" in clientEnv: |
|
2111 clientEnv["PATH"] = os.pathsep.join( |
|
2112 [execPath, clientEnv["PATH"]]) |
|
2113 else: |
|
2114 clientEnv["PATH"] = execPath |
2100 else: |
2115 else: |
2101 interpreter = "" |
2116 interpreter = "" |
2102 except KeyError: |
2117 except KeyError: |
2103 # backward compatibility (eric < 18.07) |
2118 # backward compatibility (eric < 18.07) |
2104 # get interpreter from project first |
2119 # get interpreter from project first |
2112 interpreter = Preferences.getDebugger( |
2127 interpreter = Preferences.getDebugger( |
2113 "Python3Interpreter") |
2128 "Python3Interpreter") |
2114 else: |
2129 else: |
2115 interpreter = "" |
2130 interpreter = "" |
2116 if interpreter: |
2131 if interpreter: |
2117 ok = self.__startRefactoringClient(interpreter) |
2132 ok = self.__startRefactoringClient(interpreter, clientEnv) |
2118 if not ok: |
2133 if not ok: |
2119 self.__ui.appendToStderr(self.tr( |
2134 self.__ui.appendToStderr(self.tr( |
2120 "Project language '{0}' is not supported because" |
2135 "Project language '{0}' is not supported because" |
2121 " the configured interpreter could not be started." |
2136 " the configured interpreter could not be started." |
2122 " Refactoring is disabled." |
2137 " Refactoring is disabled." |
2284 .replace("\n", "<br/>").replace("\r", "<br/>"), |
2299 .replace("\n", "<br/>").replace("\r", "<br/>"), |
2285 ), |
2300 ), |
2286 E5MessageBox.StandardButtons( |
2301 E5MessageBox.StandardButtons( |
2287 E5MessageBox.Ok)) |
2302 E5MessageBox.Ok)) |
2288 |
2303 |
2289 def __startRefactoringClient(self, interpreter): |
2304 def __startRefactoringClient(self, interpreter, clientEnv): |
2290 """ |
2305 """ |
2291 Private method to start the refactoring client. |
2306 Private method to start the refactoring client. |
2292 |
2307 |
2293 @param interpreter interpreter to be used for the refactoring client |
2308 @param interpreter interpreter to be used for the refactoring client |
2294 @type str |
2309 @type str |
|
2310 @param clientEnv dictionary with environment variables to run the |
|
2311 interpreter with |
|
2312 @type dict |
2295 @return flag indicating a successful client start |
2313 @return flag indicating a successful client start |
2296 @rtype bool |
2314 @rtype bool |
2297 """ |
2315 """ |
2298 if interpreter: |
2316 if interpreter: |
2299 client = os.path.join(os.path.dirname(__file__), |
2317 client = os.path.join(os.path.dirname(__file__), |
2300 "RefactoringClient.py") |
2318 "RefactoringClient.py") |
2301 ok = self.startClient(interpreter, client, [self.__projectpath]) |
2319 ok = self.startClient(interpreter, client, [self.__projectpath], |
|
2320 environment=clientEnv) |
2302 else: |
2321 else: |
2303 ok = False |
2322 ok = False |
2304 return ok |
2323 return ok |
2305 |
2324 |
2306 ######################################################################### |
2325 ######################################################################### |