[LyX/master] Output python version in About dialog.

Pavel Sanda sanda at lyx.org
Mon Sep 4 18:34:22 UTC 2023


commit 625c61f1d545044f8c287434968b79f17004a078
Author: Pavel Sanda <sanda at lyx.org>
Date:   Mon Sep 4 21:50:51 2023 +0200

    Output python version in About dialog.
    
    Patch from Jose.
---
 src/frontends/qt/GuiAbout.cpp |    4 ++--
 src/support/os.cpp            |   12 ++++++++++--
 src/support/os.h              |    3 +++
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/frontends/qt/GuiAbout.cpp b/src/frontends/qt/GuiAbout.cpp
index 325801c..0a585f0 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 << "</p><p>";
 #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("</p></body></html>");
 	return res;
diff --git a/src/support/os.cpp b/src/support/os.cpp
index abb9ec6..27427cd 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 7e6bdbd..35154a8 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();
 


More information about the lyx-cvs mailing list