diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 744a0d1885ab035a5011c8a44d22a54012fb003f..8ecc727aa81cf1242d4b7bfb3c1d2e21c00b4c71 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -81,7 +81,20 @@ file(COPY "${PROJECT_SOURCE_DIR}/VERSION" DESTINATION "${python_mod_path}")
 # Set the installation path
 
 # Ask Python where it keeps its system (platform) packages.
-execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print(sysconfig.get_path('platlib'))" OUTPUT_VARIABLE ARB_PYTHON_LIB_PATH_DEFAULT OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+    file(WRITE "${CMAKE_BINARY_DIR}/install-prefix" "")
+else()
+    file(WRITE "${CMAKE_BINARY_DIR}/install-prefix" "${CMAKE_INSTALL_PREFIX}")
+endif()
+
+execute_process(
+    COMMAND ${PYTHON_EXECUTABLE} -c
+    "import sys,sysconfig;pfx=sys.stdin.read();print(sysconfig.get_path('platlib',vars={} if pfx=='' else {'base':pfx,'platbase':pfx}))"
+    INPUT_FILE "${CMAKE_BINARY_DIR}/install-prefix"
+    OUTPUT_VARIABLE ARB_PYTHON_LIB_PATH_DEFAULT
+    OUTPUT_STRIP_TRAILING_WHITESPACE)
+
 # Default to installing in that path, override with user specified ARB_PYTHON_LIB_PATH
 set(ARB_PYTHON_LIB_PATH ${ARB_PYTHON_LIB_PATH_DEFAULT} CACHE PATH "path for installing Python module for Arbor.")
 message(STATUS "Python module installation path: ${ARB_PYTHON_LIB_PATH}")