diff options
author | Cristián Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2021-05-10 17:00:53 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-05-11 11:01:40 +0200 |
commit | 835663f6f43525d67c86ac1cc4dd22f7bd845e51 (patch) | |
tree | d8fd213501dd5642d9a5e33eb4ff46eb45a3dc97 /sources | |
parent | 1da27a40a71e61f4ac4bc83819ade1461efb17fc (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.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); } |