diff --git a/CMakeLists.txt b/CMakeLists.txt
index f662dbe..77745f9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -161,24 +161,13 @@
     endwhile ()
 
     if (NOT Boost_PYTHON_FOUND)
-        find_package(Boost QUIET COMPONENTS python3 ${boost_libs})
-        if ("${Boost_LIBRARIES}" MATCHES ".*(python|PYTHON).*" )
-            set(Boost_PYTHON_FOUND TRUE)
-        endif ()
-    endif ()
-
-    if (NOT Boost_PYTHON_FOUND)
-        find_package(Boost QUIET COMPONENTS python36 ${boost_libs})
-        if ("${Boost_LIBRARIES}" MATCHES ".*(python|PYTHON).*" )
-            set(Boost_PYTHON_FOUND TRUE)
-        endif ()
-    endif ()
-
-    if (NOT Boost_PYTHON_FOUND)
-        find_package(Boost QUIET COMPONENTS python37 ${boost_libs})
-        if ("${Boost_LIBRARIES}" MATCHES ".*(python|PYTHON).*" )
-            set(Boost_PYTHON_FOUND TRUE)
-        endif ()
+        foreach (PyVer 3 36 37 38)
+            find_package(Boost QUIET COMPONENTS python${PyVer} ${boost_libs})
+            if ("${Boost_LIBRARIES}" MATCHES ".*(python|PYTHON).*" )
+                set(Boost_PYTHON_FOUND TRUE)
+                break()
+            endif ()
+        endforeach ()
     endif ()
 
     if (NOT Boost_PYTHON_FOUND)
