diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 9c06d45..70eba5c 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -1,16 +1,21 @@
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/scikit-build-cmake)
-include(UseCython)
-include(FindPythonExtensions)
-include(FindNumPy)
 
-find_package(PythonInterp REQUIRED)
-find_package(PythonLibs REQUIRED)
-find_package(PythonExtensions REQUIRED)
+find_package(Python COMPONENTS Interpreter Development NumPy REQUIRED)
+# They use the old find_package(PythonInterp) which expects a few other
+# variables
+set(PYTHONINTERP_FOUND TRUE)
+set(PYTHONLIBS_FOUND TRUE)
+set(PYTHON_EXECUTABLE ${Python_EXECUTABLE})
+set(PYTHON_VERSION_MAJOR ${Python_VERSION_MAJOR})
+set(PYTHON_INCLUDE_DIRS ${Python_INCLUDE_DIRS})
+set(PYTHON_LIBRARIES ${Python_LIBRARIES})
+
 find_package(Cython REQUIRED)
-find_package(NumPy REQUIRED)
+find_package(PythonExtensions REQUIRED)
+
 
 include_directories(${ZFP_SOURCE_DIR}/include)
-include_directories(${NumPy_INCLUDE_DIR})
+include_directories(${Python_NumPy_INCLUDE_DIRS})
 
 add_cython_target(zfpy zfpy.pyx C)
 add_library(zfpy MODULE ${zfpy})
@@ -22,5 +27,4 @@ set(PYLIB_BUILD_DIR "${CMAKE_BINARY_DIR}/bin" CACHE PATH "Directory where zfp py
 set_target_properties(zfpy PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PYLIB_BUILD_DIR})
 
 # Install to the typical python module directory
-set(python_install_lib_dir "lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/")
-install(TARGETS zfpy LIBRARY DESTINATION ${python_install_lib_dir})
+install(TARGETS zfpy LIBRARY DESTINATION ${Python_SITELIB})
diff --git a/python/scikit-build-cmake/FindCython.cmake b/python/scikit-build-cmake/FindCython.cmake
index 5f2ce6e..25e6c35 100644
--- a/python/scikit-build-cmake/FindCython.cmake
+++ b/python/scikit-build-cmake/FindCython.cmake
@@ -36,7 +36,6 @@
 
 # Use the Cython executable that lives next to the Python executable
 # if it is a local installation.
-find_package(PythonInterp)
 if(PYTHONINTERP_FOUND)
   get_filename_component(_python_path ${PYTHON_EXECUTABLE} PATH)
   find_program(CYTHON_EXECUTABLE
diff --git a/python/scikit-build-cmake/FindPythonExtensions.cmake b/python/scikit-build-cmake/FindPythonExtensions.cmake
index 33e034d..f02f8ca 100644
--- a/python/scikit-build-cmake/FindPythonExtensions.cmake
+++ b/python/scikit-build-cmake/FindPythonExtensions.cmake
@@ -244,8 +244,8 @@
 # limitations under the License.
 #=============================================================================
 
-find_package(PythonInterp REQUIRED)
-find_package(PythonLibs)
+# find_package(PythonInterp REQUIRED)
+# find_package(PythonLibs)
 include(targetLinkLibrariesWithDynamicLookup)
 
 set(_command "
diff --git a/python/scikit-build-cmake/UseCython.cmake b/python/scikit-build-cmake/UseCython.cmake
index 2c40bd7..086d657 100644
--- a/python/scikit-build-cmake/UseCython.cmake
+++ b/python/scikit-build-cmake/UseCython.cmake
@@ -102,7 +102,7 @@ set(CYTHON_FLAGS "" CACHE STRING
     "Extra flags to the cython compiler.")
 mark_as_advanced(CYTHON_ANNOTATE CYTHON_FLAGS)
 
-find_package(PythonLibs REQUIRED)
+# find_package(PythonLibs REQUIRED)
 
 set(CYTHON_CXX_EXTENSION "cxx")
 set(CYTHON_C_EXTENSION "c")