diff options
author | Cristián Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2021-05-10 17:00:53 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-05-11 11:43:48 +0000 |
commit | 3cb925bc0f0dcc1c3adb0d85ba15c2abf5b8c0e8 (patch) | |
tree | de730242f26285d5185ae3607444dd3a4f7dc896 | |
parent | 95ab0000b2e8582ab7dec3826f5ef2ef110ba191 (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
Change-Id: Iff4f2c7504d579ca7f00df1c9e07f62a9dd1f1e3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
(cherry picked from commit 835663f6f43525d67c86ac1cc4dd22f7bd845e51)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | sources/pyside6/plugins/designer/designercustomwidgets.cpp | 23 |
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); } |