diff --git a/scripting/python_scripting.cpp b/scripting/python_scripting.cpp index 2a4e255a23..091f14e712 100644 --- a/scripting/python_scripting.cpp +++ b/scripting/python_scripting.cpp @@ -90,8 +90,12 @@ bool SCRIPTING::IsWxAvailable() pybind11::dict locals; pybind11::exec( R"( -from wx import version -wx_version = version() +wx_version = "" +try: + from wx import version + wx_version = version() +except (ImportError, ModuleNotFoundError): + pass )", pybind11::globals(), locals ); // e.g. "4.0.7 gtk3 (phoenix) wxWidgets 3.0.4" @@ -99,7 +103,7 @@ wx_version = version() int idx = version.Find( wxT( "wxWidgets " ) ); - if( idx == wxNOT_FOUND ) + if( idx == wxNOT_FOUND || version.IsEmpty() ) { wxLogError( wxT( "Could not determine wxPython version. " "Python plugins will not be available." ) ); @@ -107,7 +111,9 @@ wx_version = version() } version = version.Mid( idx + 10 ); - wxString wxVersion = wxGetLibraryVersionInfo().GetVersionString(); + wxVersionInfo wxVI = wxGetLibraryVersionInfo(); + wxString wxVersion = wxString::Format( wxT( "%d.%d.%d" ), + wxVI.GetMajor(), wxVI.GetMinor(), wxVI.GetMicro() ); if( wxVersion.Cmp( version ) != 0 ) {