diff --git a/cmake/BornAgain/Dependences.cmake b/cmake/BornAgain/Dependences.cmake
index e17319429cdfe019fa48ab3b90e7269c694a7ff8..8034c260475981b7ad2de50fe1d65dc3440d6a14 100644
--- a/cmake/BornAgain/Dependences.cmake
+++ b/cmake/BornAgain/Dependences.cmake
@@ -153,6 +153,15 @@ if(BORNAGAIN_PYTHON OR BORNAGAIN_PYTHON_PACKAGE_VERSIONS)
         endif()
     endif()
 
+    foreach(pkg build setuptools wheel)
+        execute_process(
+            COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/cmake/tests/find_pkg.py ${PKG}
+            RESULT_VARIABLE PKG_FOUND)
+        if(NOT PKG_FOUND)
+            message(FATAL_ERROR "Python package ${pkg} not found")
+        endif()
+    endforeach()
+
     #-- add multiple versions of Python, as required
     include("BornAgain/multipython/PyDependences")
     find_multipython_dependences("${Python3_VERSION}")
diff --git a/cmake/tests/find_pkg.py b/cmake/tests/find_pkg.py
new file mode 100755
index 0000000000000000000000000000000000000000..1fd04ac430b7b94a240c3783c97f62a85fad8e2c
--- /dev/null
+++ b/cmake/tests/find_pkg.py
@@ -0,0 +1,13 @@
+#!/usr/bin/env python3
+
+import sys
+pkg = sys.argv[1]
+print("find_pkg searching", pkg)
+try:
+    __import__(pkg)
+except:
+    print("package", pkg, "not found")
+    sys.exit(1)
+
+print("package", pkg, "found")
+sys.exit(0)