From: Pavel Sanda Date: Mon, 4 Sep 2023 19:50:51 +0000 (+0200) Subject: Output python version in About dialog. X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=625c61f1d545044f8c287434968b79f17004a078;p=features.git Output python version in About dialog. Patch from Jose. --- diff --git a/src/frontends/qt/GuiAbout.cpp b/src/frontends/qt/GuiAbout.cpp index 325801c521..0a585f0eac 100644 --- a/src/frontends/qt/GuiAbout.cpp +++ b/src/frontends/qt/GuiAbout.cpp @@ -222,7 +222,7 @@ static QString buildinfo() << endl; #endif - out << lyx_version_info + out << lyx_version_info #if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)) << Qt::endl; #else @@ -297,7 +297,7 @@ static QString version(bool const plain = false) else out << "

"; #endif - out << toqstr(bformat(_("Python detected: %1$s"), from_utf8(os::python()))); + out << toqstr(bformat(_("Python detected: %1$s"), from_utf8(os::python_info()))); if (!plain) out << toqstr("

"); return res; diff --git a/src/support/os.cpp b/src/support/os.cpp index abb9ec6d67..27427cd8ea 100644 --- a/src/support/os.cpp +++ b/src/support/os.cpp @@ -58,7 +58,7 @@ int timeout_ms() static string const python23_call(string const & binary, bool verbose = false) { - const string version_info = " -c \"from __future__ import print_function;import sys; print(sys.version_info[:2], end=\\\"\\\")\""; + const string version_info = " -c \"from __future__ import print_function; import sys; print(sys.version_info[:2], end='')\""; // Default to "python" if no binary is given. if (binary.empty()) return "python -tt"; @@ -142,7 +142,7 @@ static string const find_python_binary() return command; #ifdef _WIN32 - // python launcher is not installed, let cmd auto check + // python launcher is not installed, let cmd auto check // PATH for a python.exe command = python23_call("python"); if (!command.empty()) @@ -197,6 +197,14 @@ bool hasPython() return !(python23_call(python()).empty()); } +string const python_info() +{ + const string info_version = " -c \"from __future__ import print_function; import sys; print('{} ({})'.format(sys.version.split()[0],sys.executable), end='')\""; + if (!hasPython()) + return("None"); + return (runCommand(python() + info_version).result); +} + } // namespace os } // namespace support } // namespace lyx diff --git a/src/support/os.h b/src/support/os.h index 7e6bdbde95..35154a8c34 100644 --- a/src/support/os.h +++ b/src/support/os.h @@ -65,6 +65,9 @@ std::string const python(bool reset = false); /// Check for availability of the python interpreter bool hasPython(); +/// Return information about the ython interper +std::string const python_info(); + /// bool isFilesystemCaseSensitive();