From 31496b588c79bf567d02bbfc2879cfb84c780f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=C3=A1n=20Maureira-Fredes?= Date: Mon, 10 May 2021 17:00:53 +0200 Subject: Fix designer plugin for macOS Adding the site-packages path for standalone builds, similar to the issue we had for Windows and 3.8 Change-Id: Iff4f2c7504d579ca7f00df1c9e07f62a9dd1f1e3 Reviewed-by: Friedemann Kleint (cherry picked from commit 835663f6f43525d67c86ac1cc4dd22f7bd845e51) Reviewed-by: Qt Cherry-pick Bot --- .../plugins/designer/designercustomwidgets.cpp | 23 +++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/sources/pyside6/plugins/designer/designercustomwidgets.cpp b/sources/pyside6/plugins/designer/designercustomwidgets.cpp index 65074c546..dd758bb98 100644 --- a/sources/pyside6/plugins/designer/designercustomwidgets.cpp +++ b/sources/pyside6/plugins/designer/designercustomwidgets.cpp @@ -162,7 +162,10 @@ static void initVirtualEnvironment() static const char virtualEnvVar[] = "VIRTUAL_ENV"; // As of Python 3.8/Windows, Python is no longer able to run stand-alone in // a virtualenv due to missing libraries. Add the path to the modules - // instead. + // instead. macOS seems to be showing the same issues. + + const auto os = QOperatingSystemVersion::currentType(); + bool ok; int majorVersion = qEnvironmentVariableIntValue("PY_MAJOR_VERSION", &ok); int minorVersion = qEnvironmentVariableIntValue("PY_MINOR_VERSION", &ok); @@ -172,7 +175,7 @@ static void initVirtualEnvironment() } if (!qEnvironmentVariableIsSet(virtualEnvVar) - || QOperatingSystemVersion::currentType() != QOperatingSystemVersion::Windows + || (os != QOperatingSystemVersion::MacOS && os != QOperatingSystemVersion::Windows) || (majorVersion == 3 && minorVersion < 8)) { return; } @@ -181,7 +184,21 @@ static void initVirtualEnvironment() QByteArray pythonPath = qgetenv(pythonPathVar); if (!pythonPath.isEmpty()) pythonPath.append(QDir::listSeparator().toLatin1()); - pythonPath.append(virtualEnvPath + R"(\Lib\site-packages)"); + + switch (os) { + case QOperatingSystemVersion::Windows: + pythonPath.append(virtualEnvPath + R"(\Lib\site-packages)"); + break; + case QOperatingSystemVersion::MacOS: + pythonPath.append(virtualEnvPath + QByteArrayLiteral("/lib/python") + + QByteArray::number(majorVersion) + '.' + + QByteArray::number(minorVersion) + + QByteArrayLiteral("/site-packages")); + break; + default: + break; + } + qputenv(pythonPathVar, pythonPath); } -- cgit v1.2.3