Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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")
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
    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")
Exemplo n.º 5
0
    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")
Exemplo n.º 6
0
    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")