--- a/cmake/Modules/FindTHRIFT.cmake
+++ b/cmake/Modules/FindTHRIFT.cmake
@@ -66,22 +66,22 @@
   SET(PYTHON_THRIFT_FOUND TRUE)
 ELSE  (CMAKE_CROSSCOMPILING)
   GR_PYTHON_CHECK_MODULE("Thrift" thrift "1" PYTHON_THRIFT_FOUND)
+  GR_PYTHON_CHECK_MODULE("ThriftPy" thriftpy "1" PYTHON_THRIFTPY_FOUND)
 ENDIF  (CMAKE_CROSSCOMPILING)
 
 # Set to found if we've made it this far
-if(THRIFT_INCLUDE_DIRS AND THRIFT_LIBRARIES AND PYTHON_THRIFT_FOUND)
+if(THRIFT_INCLUDE_DIRS AND THRIFT_LIBRARIES AND (PYTHON_THRIFT_FOUND OR PYTHON_THRIFTPY_FOUND))
   set(THRIFT_FOUND TRUE CACHE BOOL "If Thift has been found")
-endif(THRIFT_INCLUDE_DIRS AND THRIFT_LIBRARIES AND PYTHON_THRIFT_FOUND)
-
+endif()
 
 INCLUDE(FindPackageHandleStandardArgs)
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(THRIFT DEFAULT_MSG
   THRIFT_LIBRARIES THRIFT_INCLUDE_DIRS
-  THRIFT_BIN PYTHON_THRIFT_FOUND THRIFT_FOUND
+  THRIFT_BIN THRIFT_FOUND
 )
 MARK_AS_ADVANCED(
   THRIFT_LIBRARIES THRIFT_INCLUDE_DIRS
-  THRIFT_BIN PYTHON_THRIFT_FOUND THRIFT_FOUND
+  THRIFT_BIN PYTHON_THRIFT_FOUND PYTHON_THRIFTPY_FOUND THRIFT_FOUND
 )
 
 if (THRIFT_FOUND AND NOT TARGET Thrift::thrift)
--- a/gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/CMakeLists.txt
@@ -71,7 +71,18 @@
 
   GR_PYTHON_INSTALL(
     FILES
-    ${thrift_targets}
+    ${CMAKE_CURRENT_BINARY_DIR}/GNURadio/__init__.py
+    ${CMAKE_CURRENT_BINARY_DIR}/GNURadio/constants.py
+    ${CMAKE_CURRENT_BINARY_DIR}/GNURadio/ControlPort.py
+    ${CMAKE_CURRENT_BINARY_DIR}/GNURadio/StreamReceiver.py
+    ${CMAKE_CURRENT_BINARY_DIR}/GNURadio/ttypes.py
+    DESTINATION ${GR_PYTHON_DIR}/gnuradio/ctrlport/GNURadio
+  )
+
+  GR_PYTHON_INSTALL(
+    PROGRAMS
+    ${CMAKE_CURRENT_BINARY_DIR}/GNURadio/ControlPort-remote
+    ${CMAKE_CURRENT_BINARY_DIR}/GNURadio/StreamReceiver-remote
     DESTINATION ${GR_PYTHON_DIR}/gnuradio/ctrlport/GNURadio
   )
 
