def find_python3_interpreter(self): """ Finds a Python 3 interpreter :return: The path to the first Python 3 interpreter found, or None """ # Try with embedded interpreter first if self.home is not None: path = os.path.join(self.home, "bin", "python3") if os.path.exists(path): return os.path.abspath(path) # Try with current interpreter if sys.version_info[0] == 3 and sys.executable is not None: return sys.executable # Try with common names common_names = ("python3", "python3.3", "python3.4", "python3.5") for name in common_names: found = utils.find_in_path(name) if found is not None: return found # Not found return None
def find_java_interpreter(self, java_home): """ Finds the Java interpreter, in the given Java Home if possible :param java_home: The preferred Java home """ # Case 1 : Try "preferred" JVM (embedded one) java_home = utils.remove_quotes(java_home) java = self._test_java_path(java_home) if java is not None: return java # Case 2 : Use registry java_home = get_registry_java_home() java = self._test_java_path(java_home) if java is not None: return java # Case 3 : Try with JAVA_HOME environment variable java_home = utils.remove_quotes(os.getenv(cohorte.ENV_JAVA_HOME)) java = self._test_java_path(java_home) if java is not None: return java # Case 4 : Try with all with PATH return utils.find_in_path("java.exe")
def find_python2_interpreter(self): """ Finds a Python 2 interpreter :return: The path to the first Python 2 interpreter found, or None """ # Try with embedded interpreter first if self.home is not None: path = os.path.join(self.home, "bin", "python2") if os.path.exists(path): return os.path.abspath(path) # Try with current interpreter if sys.version_info[0] == 2 and sys.executable is not None: return sys.executable # Try with common names common_names = ("python", "python2", "python2.7") for name in common_names: found = utils.find_in_path(name) if found is not None: return found # Not found return None
def find_java_interpreter(self, java_home): """ Finds the Java interpreter, in the given Java Home if possible :param java_home: The preferred Java home :return: The path to the first Java interpreter found, or None """ # Case 1 : Try "preferred" JVM (embedded one) java = self._test_java_path(java_home) if java is not None: return java # Case 2 : Try with JAVA_HOME environment variable java_home = os.getenv(cohorte.ENV_JAVA_HOME) java = self._test_java_path(java_home) if java is not None: return java # Case 3 : Try with all with PATH return utils.find_in_path("java")
def find_python3_interpreter(self): """ Finds a Python 3 interpreter :return: The path to the first Python 3 interpreter found, or None """ # Try with embedded interpreter first if self.home is not None: path = os.path.join(self.home, "bin", "python3", "bin", "python3.exe") if os.path.exists(path): return os.path.abspath(path) # Try with current interpreter if sys.version_info[0] == 3 and sys.executable is not None: return sys.executable # TODO: try with the registry # Try in the path return utils.find_in_path("python.exe")