aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorCristián Maureira-Fredes <cristian.maureira-fredes@qt.io>2021-05-10 17:00:53 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-05-11 11:01:40 +0200
commit835663f6f43525d67c86ac1cc4dd22f7bd845e51 (patch)
treed8fd213501dd5642d9a5e33eb4ff46eb45a3dc97 /sources
parent1da27a40a71e61f4ac4bc83819ade1461efb17fc (diff)
Fix designer plugin for macOS
Adding the site-packages path for standalone builds, similar to the issue we had for Windows and 3.8 Pick-to: 6.1 6.1.0 Change-Id: Iff4f2c7504d579ca7f00df1c9e07f62a9dd1f1e3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources')
-rw-r--r--sources/pyside6/plugins/designer/designercustomwidgets.cpp23
1 files 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);
}