From b4a22b6d5ef2472e416f1209d539c9b3c8266653 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Wed, 21 Feb 2024 00:43:04 +0100 Subject: [PATCH 1/3] add information about potential problem --- docs/faq.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/faq.md b/docs/faq.md index 807ff2b2e..555f4bf48 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -355,6 +355,13 @@ sh "/Applications/Python 3.8/Install Certificates.command" Then cibuildwheel will detect that it's installed and use it instead. However, you probably don't want to build x86_64 wheels on this Python, unless you're happy with them only supporting macOS 11+. +### macOS: Library dependencies do not satisfy target MacOS + +Since delocate 0.10.8 there is added verification that the library binary dependencies match the target macOS version. This is to prevent the situation where a wheel platform tag is lower than the actual minimum macOS version required by the library. To resolve this error you need to build the library to the same macOS version as the target wheel (for example using `MACOSX_DEPLOYMENT_TARGET` environment variable). +Alternatively, you could set a higher `MACOSX_DEPLOYMENT_TARGET` to drop support for older macOS versions. + +This error may happen when you install a library using a package manager like Homebrew, which compiles the library for the macOS version of the build machine. This is not suitable for wheels, as the library will only work on the same macOS version as the build machine. You should compile the library yourself, or use a precompiled binary that matches the target macOS version. + ### Windows: 'ImportError: DLL load failed: The specific module could not be found' Visual Studio and MSVC link the compiled binary wheels to the Microsoft Visual C++ Runtime. Normally, the C parts of the runtime are included with Python, but the C++ components are not. When compiling modules using C++, it is possible users will run into problems on systems that do not have the full set of runtime libraries installed. The solution is to ask users to download the corresponding Visual C++ Redistributable from the [Microsoft website](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads) and install it. From 86ed421c1b62cff6c22dbc566969dd38988c3088 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Wed, 21 Feb 2024 11:10:58 +0100 Subject: [PATCH 2/3] Update docs/faq.md Co-authored-by: Joe Rickerby --- docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq.md b/docs/faq.md index 555f4bf48..6cec6d26e 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -358,7 +358,7 @@ Then cibuildwheel will detect that it's installed and use it instead. However, y ### macOS: Library dependencies do not satisfy target MacOS Since delocate 0.10.8 there is added verification that the library binary dependencies match the target macOS version. This is to prevent the situation where a wheel platform tag is lower than the actual minimum macOS version required by the library. To resolve this error you need to build the library to the same macOS version as the target wheel (for example using `MACOSX_DEPLOYMENT_TARGET` environment variable). -Alternatively, you could set a higher `MACOSX_DEPLOYMENT_TARGET` to drop support for older macOS versions. +Alternatively, you could set `MACOSX_DEPLOYMENT_TARGET` in `CIBW_ENVIRONMENT` to correctly label the wheel as incompatible with older macOS versions. This error may happen when you install a library using a package manager like Homebrew, which compiles the library for the macOS version of the build machine. This is not suitable for wheels, as the library will only work on the same macOS version as the build machine. You should compile the library yourself, or use a precompiled binary that matches the target macOS version. From 89e0a90bc52530e80796e70503b37d038de29326 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Mon, 25 Mar 2024 04:30:10 -0400 Subject: [PATCH 3/3] Update docs/faq.md --- docs/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/faq.md b/docs/faq.md index 6cec6d26e..a2a6bcddc 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -357,7 +357,7 @@ Then cibuildwheel will detect that it's installed and use it instead. However, y ### macOS: Library dependencies do not satisfy target MacOS -Since delocate 0.10.8 there is added verification that the library binary dependencies match the target macOS version. This is to prevent the situation where a wheel platform tag is lower than the actual minimum macOS version required by the library. To resolve this error you need to build the library to the same macOS version as the target wheel (for example using `MACOSX_DEPLOYMENT_TARGET` environment variable). +Since delocate 0.11.0 there is added verification that the library binary dependencies match the target macOS version. This is to prevent the situation where a wheel platform tag is lower than the actual minimum macOS version required by the library. To resolve this error you need to build the library to the same macOS version as the target wheel (for example using `MACOSX_DEPLOYMENT_TARGET` environment variable). Alternatively, you could set `MACOSX_DEPLOYMENT_TARGET` in `CIBW_ENVIRONMENT` to correctly label the wheel as incompatible with older macOS versions. This error may happen when you install a library using a package manager like Homebrew, which compiles the library for the macOS version of the build machine. This is not suitable for wheels, as the library will only work on the same macOS version as the build machine. You should compile the library yourself, or use a precompiled binary that matches the target macOS version.