diff -r 4c15cb777c1f -r fc99172cd83e Preferences/ProgramsDialog.py --- a/Preferences/ProgramsDialog.py Mon Jan 22 18:10:56 2018 +0100 +++ b/Preferences/ProgramsDialog.py Tue Jan 23 17:49:48 2018 +0100 @@ -348,23 +348,28 @@ output = str(proc.readAllStandardOutput(), Preferences.getSystem("IOEncoding"), 'replace') - if versionRe is None: - versionRe = "^{0}".format( - re.escape(versionStartsWith)) - versionRe = re.compile(versionRe, re.UNICODE) - for line in output.splitlines(): - if versionRe.search(line): - try: - version = line.split()[versionPosition] - if versionCleanup: - version = version[ - versionCleanup[0]:versionCleanup[1] - ] - break - except IndexError: - version = self.tr("(unknown)") + if exeModule and exeModule[0] == "-m" and \ + "ImportError:" in output: + version = self.tr("(module not found)") else: - version = self.tr("(unknown)") + if versionRe is None: + versionRe = "^{0}".format( + re.escape(versionStartsWith)) + versionRe = re.compile(versionRe, re.UNICODE) + for line in output.splitlines(): + if versionRe.search(line): + try: + version = line.split()[versionPosition] + if versionCleanup: + version = version[ + versionCleanup[0]: + versionCleanup[1] + ] + break + except IndexError: + version = self.tr("(unknown)") + else: + version = self.tr("(unknown)") else: version = self.tr("(not executable)") if exeModule: